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_Concurrency - Fatal编程技术网

Java 用于精确定时大型数据集计算的线程数?

Java 用于精确定时大型数据集计算的线程数?,java,multithreading,concurrency,Java,Multithreading,Concurrency,我对Java多线程并发执行的细节不是很在行,因为我对微处理器如何在同一线程上执行并发操作、如何利用超线程、如何控制缓存、操作系统如何利用线程等没有深入的了解 我已经做了大量的研究来告诉自己,但是,我仍然不太明白如何优化我的代码 具体来说,我需要能够同时从网络连接检索输入,将数据写入文件,并执行复杂的数学运算(最累人的是多项式回归),这通常需要处理超过1.0e32的数十个数字。我需要在几秒钟内完成数千次 那么,假设应用程序可以从服务器或公共桌面运行,那么对于这些元素来说,什么是实现并发性的好方法呢

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

我已经做了大量的研究来告诉自己,但是,我仍然不太明白如何优化我的代码

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


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

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

您能否分解组件以进一步了解它?了解每个组件的性质将有助于我们更好地找到解决方案。