精确定时大数据集计算的线程数?

时间:2013-07-26 05:23:04

标签: java multithreading concurrency

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

我做了大量研究以告知自己,但我仍然不太了解如何优化我的代码。

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

那么假设应用程序可以从服务器或普通桌面运行,那么为这些元素实现并发性的好方法是什么呢?如果问题太模糊,任何能指出我正确理解Java中多处理的人都会非常感激。

1 个答案:

答案 0 :(得分:0)

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