Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理多线程事件_Java_Multithreading_Network Programming - Fatal编程技术网

Java 处理多线程事件

Java 处理多线程事件,java,multithreading,network-programming,Java,Multithreading,Network Programming,我正在实现TCP的简单版本,但缺少多线程技术。主线程控制2个子线程: 一,。计时器(倒计时,如果超时,通知主线程重新执行某些工作) 二,。监听传入的数据包,永远循环。若收到数据包,那个么更新主线程中的一些数据 当某个信号出现时,主线程应该采取行动 我没有处理事件的经验,也没有设计一些通知主线程的信号。 我应该从哪里开始?例如,子线程更新主线程私有字段。或者我应该创建一些事件 下面是一些主线程的伪代码: while(true){ event: send data ,then ... eve

我正在实现TCP的简单版本,但缺少多线程技术。主线程控制2个子线程:

一,。计时器(倒计时,如果超时,通知主线程重新执行某些工作)

二,。监听传入的数据包,永远循环。若收到数据包,那个么更新主线程中的一些数据

当某个信号出现时,主线程应该采取行动

我没有处理事件的经验,也没有设计一些通知主线程的信号。 我应该从哪里开始?例如,子线程更新主线程私有字段。或者我应该创建一些事件

下面是一些主线程的伪代码:

while(true){
  event: send data ,then ...
  event: timeout , then send packet again
  event: packet received, then update data in private filed 
}

如果您不熟悉Java中的多线程概念,我建议您先阅读本教程:

在讨论您的具体问题时,您应该有两条线索: -一个用于监听套接字,它将扩展线程。它应该在构建时接收到对主要对象的引用,并继续侦听套接字。当某个对象到达时,该线程将调用处理例程,以便主对象采取操作。只有在套接字未准备好的情况下,才需要注意繁忙的等待-等待一段时间。
-您的计时器可以是TimerTask的扩展。为了了解更多信息,请查看。

您做了哪些研究?你看过哪些网络资源?@Grey和Excutor界面,BlockingQueue界面