Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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,我花了几天时间试图弄明白这一点,我还有O'Reilly Java Threads的书。我还没有弄明白这一点: 我正在运行RHEL Linux 6和Java 6 当我的程序启动时,我想通过打开的侦听端口进行循环。对于每一个端口,我想启动一个线程,该线程将侦听syn数据包,然后使用tcp/ip更新数据库,并在每次有人或某事尝试连接到该端口时处理信息 也许我的想法是错的。我期待着某种类似套接字的数组,它为我提供了某种管理线程的方法 例如,我启动了一个线程来监视端口8561,但是它有一个错误。当8561

我花了几天时间试图弄明白这一点,我还有O'Reilly Java Threads的书。我还没有弄明白这一点:

我正在运行RHEL Linux 6和Java 6

当我的程序启动时,我想通过打开的侦听端口进行循环。对于每一个端口,我想启动一个线程,该线程将侦听syn数据包,然后使用tcp/ip更新数据库,并在每次有人或某事尝试连接到该端口时处理信息

也许我的想法是错的。我期待着某种类似套接字的数组,它为我提供了某种管理线程的方法

例如,我启动了一个线程来监视端口8561,但是它有一个错误。当8561出现错误并结束时,我可能想检查它,再试一次,或者其他什么。我怎么知道它结束的时候是哪根线


谢谢大家!

您遇到的错误是什么?您可以发布代码片段吗?如果没有更多信息,我们将无法帮助您。您能提供您的代码吗?如果您在线程中打开一个新通道而没有关闭具有相同地址/端口的前一个通道,则可能会出现错误。您可以使用信号或线程池。通常,尝试微管理线程的结果会很糟糕。对于多个并行网络请求,将请求对象提交到threadpool队列(其中线程数由threadpool类固定或管理)比尝试在数组中管理线程句柄要安全得多。我的问题可能是一个简单的误解,因为我对Java不熟悉,可能正在与其他语言进行比较。