多线程问题

时间:2012-08-07 04:22:32

标签: java multithreading protocols network-protocols

我在多任务处理方面遇到问题。我在下面解释过。

  • 我需要为我的所有用户(例如200个用户)做一些处理 网络应用

  • 该过程是协议请求调用。

  • 我可以在创建线程之间的最长时间内运行1000个用户。 但我需要在没有睡眠时间的情况下运行,而且我还需要运行多达1000个用户。

  • 当我尝试为200个用户运行时,我没有得到任何回复。它停了很久。我不知道原因。

如果有人有意解决,请告诉我 ...谢谢...

1 个答案:

答案 0 :(得分:1)

嗯,听起来像是一个过快创建太多线程的问题。

尝试使用某种ThreadPool来最小化线程创建的开销。基本上你会想要创建一组固定的线程,然后重新使用这些线程来完成新任务,而不是为每个任务创建一个新线程。

例如,如果每个任务运行1秒,并且每秒运行2个任务100秒,则每个任务线程的方法将创建200个线程来运行所有任务。一个包含100个线程的池将能够多次使用其中一些线程执行所有200个任务,并且永远不会留下等待/休眠的任何内容。