gpt4 book ai didi

java - DatagramPacket Sender 线程运行速度太快

转载 作者:行者123 更新时间:2023-12-01 16:39:15 26 4
gpt4 key购买 nike

我编写了一个 Java 线程(可运行)来基本上存储 DatagramPackets 列表,如果列表的大小 > 0,它将发送列表中的第一项。

看来,除非我在 run 方法中放置大量 sleep ,否则线程将变得无响应

public void run()
{
while ( true )
{
if ( _packetQ.size() > 0)
{
try
{
_socket.send( _packetQ.remove() );
}
catch ( IOException ex )
{
System.err.println( "Error sending packet" );
System.err.println( ex );
}
}
}
}

_packetQ是数据报包的链表。

无论如何,我可以停止线程锁定或让它仅在 packetQ.size() > 0 时运行

非常感谢

更新:天哪,由于代码中的错误,数据包甚至没有被推送到队列中,只是浪费了一个小时进行调试。感谢您的回复**

最佳答案

您可以将链接列表替换为 LinkedBlockingQueue它静静地等待,直到新数据到达。

关于java - DatagramPacket Sender 线程运行速度太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5770300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com