我在Java中有一个Process,tat需要4分钟才能完成。 10个这样的过程排队大约需要40分钟。如果我将一个进程的线程作为一个线程进行线程处理,那么所有10个进程都将并行运行,大约需要20分钟才能完成。是不是假设需要4分钟才能完成,因为所有的过程都是并行运行的?JAVA中的多处理器
回答
如果所有这些线程都在单个处理器上运行,则操作系统必须进行时间片切换和上下文切换。这种开销会增加时间。
除非您有多个处理器来分割工作,否则没有并行性。线程无法减少单个处理器上的工作。
同时运行的实际线程数通常取决于您的CPU具有的内核数。我想你有一个双核CPU,因此是时代。
如果CPU上有10个内核,则10个进程只能运行并行。但他们确实同时运行。
只有当你有10个处理器,10个IO系统等
多个线程需要共享资源
是不是它想采取4分钟到 完整的,因为所有的过程都是 并行运行?????
只有当您实际上有10个内核并且程序完全受CPU限制时。您的机器只有2个内核,或者程序部分是IO或内存限制的。所有这些都很常见。
我的过程共享一个共同的对象.. Tat会影响性能多远 – SriHarish 2011-04-29 12:28:58
@SriHarish:那只会是如果在该对象上存在严重争用的同步,则是相关的 – 2011-04-29 12:57:42
这取决于你的流程在做什么。如果例如一个进程执行大量IO操作,而其他进程执行大量计算操作,但他们确实只会一起执行这4个操作。
如果两个进程都采用相同的资源,则需要更长的时间,因为必须等待资源可用。
多久螺纹加工需要不能是说,如果你不告诉我们过程做什么,它在运行,还有什么正在运行,等等,等等等等
这就像divididing了将工作合同分为5份合同 - 电器,木工,油漆,景观和地板。如果你雇用5个人,它将花费你1/5的时间,但如果你只有一个,它需要花费相同的时间。
另一个想法是,多线程只会改善解决问题的时间,如果问题是可并行化的并且没有共享资源可能会阻碍进程。我发现如果某些应该可并行化的东西在并行化时表现出差的性能,那是因为访问共享资源。
如果只有生命如此简单。首先,假设你只有一个没有超线程技术的CPU,所以在你的机器上,任何时候只有一个线程在运行。现在考虑可能的任务配置文件中的两个极端:
CPU绑定 - 您的任务确实需要四分钟才能完成。
IO-bound(或者网络,如果你喜欢的话) - 每个任务都转到同步Web服务,需要4分钟才能提供结果。
在情况1中,添加线程无济于事。你的单核仍然需要相同的时间才能完成所有的数学任务。你绝对必须拥有更多的CPU才能使其更快。
在情况2中,假设网站响应时间不会在负载下降低,您可能更合理地预计总时间为4分钟。每个线程启动它的请求,然后它处于等待状态,直到Web响应到达,允许其他线程启动它们自己的请求。
实际上,您的任务可能会有一些I/O和CPU延迟混合在一起,产生您实际看到的“中间1到2”总执行时间。
您也一定不要忘记管理机器上其他进程的开销(即使系统进程必须被管理)和进程的操作系统管理 - 对于您包含在每个新线程中的每个新线程处理。
- 1. Python中的多处理器
- 2. Java多重处理
- 3. 单处理器或多处理器
- 4. 单处理器和多处理器中的自旋锁
- 5. java中的多重处理异常
- 6. Java中的多处理使用ProcessBuilder
- 7. java中的多线程处理
- 8. 如何处理Java中的多个流?
- 9. Java队列中的多线程处理
- 10. Java的预处理器
- 11. Java的预处理器
- 12. BCP多处理器
- 13. 多处理器python
- 14. FORTRAN多处理器
- 15. Clojure中的处理器数量? Java interop
- 16. C#中的Java预处理器
- 17. 处理Java中
- 18. 的Netty和多处理器
- 19. 多处理器机器上的Java堆和GC?
- 20. 在Java中处理多个时区
- 21. SQL Server中的多处理器用法
- 22. 多核心处理器中的线程
- 23. 多处理器下的Python多处理RemoteManager.Process
- 24. 带多处理管理器的EOFError
- 25. 流多处理器,每个流处理器的核心cuda
- 26. 在Java中处理多个过滤器-MySql
- 27. 在Java中处理多个TCP连接(服务器端)
- 28. 可以在多处理器环境中执行Java线程吗?
- 29. 多核处理器上的多线程
- 30. 多核处理器的多线程
刚开始输入相同。 – Anatolij 2011-04-29 11:48:15
除了大部分时间被阻塞的I/O繁重任务外。 – 2011-04-29 11:49:43
如果程序交替限制CPU和IO,线程可以帮助单个核心系统。 – 2011-04-29 11:50:49