Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 - Fatal编程技术网

Java 如何从另一个线程停止一个线程

Java 如何从另一个线程停止一个线程,java,multithreading,Java,Multithreading,我正在制作一个类似Skype的程序。假设我有2个电话,这意味着我有4个线程。我会有2个线程来接受用户,然后还有2个线程来处理用户的消息等等。。。如果调用中的用户少于2个,那么它将结束,但是当有2个线程正在运行时,我如何结束其中一个accept线程,以及如何告诉其中一个停止。有没有一种方法可以使用线程的索引号来停止它?正确的方法是将线程存储在变量(或数组)中,并使用从一个线程向另一个线程发出信号,表示它应该停止。然后,您向其发送信号的线程需要处理事件。显示您迄今为止所做的尝试并向接收线程发送结束信

我正在制作一个类似Skype的程序。假设我有2个电话,这意味着我有4个线程。我会有2个线程来接受用户,然后还有2个线程来处理用户的消息等等。。。如果调用中的用户少于2个,那么它将结束,但是当有2个线程正在运行时,我如何结束其中一个accept线程,以及如何告诉其中一个停止。有没有一种方法可以使用线程的索引号来停止它?

正确的方法是将线程存储在变量(或数组)中,并使用从一个线程向另一个线程发出信号,表示它应该停止。然后,您向其发送信号的线程需要处理事件。

显示您迄今为止所做的尝试并向接收线程发送结束信号。所有线程都在等待输入,因此向它们发送一条消息,通知它们结束作业。正如其他人所说,发布您的代码您必须了解更多详细信息您可以让两个线程存储彼此的引用,并尝试一些类似于每次调用4个线程的方法在可伸缩性方面不是一个好主意。Java线程相对比较昂贵,最好是复制