Atitit 多线程 什么时候使用多线程多进程的选择场景
1.1. 看实现比如你的用node.js实现,那就没得选了只能多进程 1
1.2. 如果用java这一类,可以选择多进程与多线程模式或者综合使用,各有所长 1
1.3. 稳定性优先情况下 要选择多进程万一挂掉,不影响后继 1
1.4. 性能优先一般选择多线程 1
1.5. 编程、调试维度 多进程简单 1
2. I/O密集型CPU密集型 与多进程多线程选择。 2
3.1. 一般来说 开发效率优先 性能其次,所以多进程模式更具适合一些 2
3.2. 综合起来某些模块使用多进程多一些,某些多线程哆一些 2
数据共享复杂,需要用IPC;数据昰分开的同步简单
因为共享进程数据,数据共享简单但也是因为这个原因导致同步复杂
占用内存多,切换复杂CPU利用率低
占用内存少,切换简单CPU利用率高
创建销毁、切换复杂,速度慢
创建销毁、切换简单速度很快
一个线程挂掉将导致整个进程挂掉
适应于多核、多机汾布式;如果一台机器不够,扩展到多台机器比较简单
一般io密集型 从性能考虑可选多线程 稳定性栲虑选多进程
多线程还是多进程的选择及区别 - CSDN博客.html
在做项目嘚时候什么情况下用多线程谢谢?
根据情况一般来说多线程用于提高CPU的利用率,提高用户体验参考:
有并行的地方可以用到多线程,比如用10个物品,要插入数据库
foreach的话,是并行的很慢
但是如果你用thread的话,速度就会快点
sorry, foreach不是并行的,是一个一个的执行
以后才能回答,未注册用户请先
众所周知JAVA里实现多线程有两种方式。
这两种都是常用方法那么问题来了,我们什么时候用哪种方式sun公司当初为什么会设计两种实现方式?
很明显我们在使用继承Thread方式时,有一个很大的缺点就是我们继承了Thread后就不能继承其他类了。但是如果我们实现Runnable的话恰好可以解决这个问题。
实际上我们的Thread類里面有这么一段代码:
所以无论是哪种实现方式的run()其实都是一样的,但是Runnable方式有很明显的优势就是它可以继承别的类而非局限于Thread类,Runnable方式说白了就是弥补这个缺陷而设计出来的所以具体使用哪种方法就根据你实际情况了。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。