0

我对Java的多线程并发执行的细节不是很能干,因为我对微处理器如何在同一个线程上执行并发操作、利用超线程、控制缓存、操作系统的能力没有广泛的了解利用线程等...

我已经进行了大量研究来了解自己,但是我仍然不太了解如何优化我的代码。

具体来说,我需要能够同时从网络连接检索输入,将数据写入文件,并执行复杂的数学运算(最麻烦的是多项式回归),这通常需要处理超过 1.0e32 的数十个数字。我有时需要在几秒钟内完成数千次。

那么,假设应用程序可以从服务器或公共桌面运行,那么处理这些元素的并发性的好方法是什么?如果这个问题太模糊,任何能指出我理解Java多处理的正确方向的人也将不胜感激。

4

1 回答 1

0

多线程模型取决于应用程序。是不是网络连接一直以非常快的速度发送数据?您是否对通过连接收到的每个单一数据进行了复杂的计算?计算是相互独立的还是可以在单独处理后累积?如果所有这些问题的答案都是肯定的,那么一个好的模型是让一个 Socket 读取器线程将来自网络的数据写入一个队列,并让多个线程从这个队列中读取并计算它读取的数据上的操作. 这个概念被称为线程池。

于 2013-07-26T05:40:56.560 回答