paip.为什么使用多线程的原因.
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.****.net/attilax
判断是否要使用多线程:主要是查看cpu使用率,要是不饱满,拿可能走需要多线程了...或者界面会卡死,这种情况下也要多线程...
//////使用多线程的原因
1.防止界面卡死.提高用户的用户体验
对单核CPU,对客户端软件,采用多线程,主要是 创建多线程将一些计算放在后台执行,而不影响用户交互操作。(用户界面 & 其他计算 并行进行)提高用户的操作性能!
2.耗时的操作(io,网络io等)使用线程,提高cpu使用率..
I/O操作不仅包括了直接的文件、网络的读写,还包括数据库操作、Web Service、HttpRequest以及.net Remoting等跨进程的调用。
要是不使用多线程,你回发现cpu使用率很空闲..
3.多CPU(核心)中,使用线程提高CPU利用率
使多CPU系统更加有效
操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。
要是不使用多线程,你回发现仅仅一个cpu很忙碌的,其他cpu使用率很空闲..
////////////不适用多线程的情况,
1.你的代码是cpu密集型,在单核cpu上..
2.单核cpu上,线程的使用(滥用)会给系统带来上下文切换的额外负担。并且线程间的共享变量可能造成死锁的出现。
3.当需要执行I/O操作时,使用异步操作常常比使用线程+同步I/O操作更合适。
相关文章
- 为什么需要消息队列,及使用消息队列的好处?
- 关于mybatis扫描所有namespace时报错,最终原因是resultMap不能使用(我的错误记录)
- grep中使用"\d"匹配数字不成功的原因
- C语言中的 pow 函数 使用方法及注意事项,和常见报错原因,且分享实战中的使用
- JDK 1.8中为什么HashMap使用红黑树而不是普通的AVL树
- .BASE64Encoder在Eclipse中不能直接使用的原因和解决方案
- java使用多线程及分页查询数据量很大的数据
- c++之std::thread多线程的使用和获取pid/tid
- java实现多线程使用多个代理ip的方式爬取网页页面内容
- mybatis-plus使用selectById查询时报错原因是表的主键不是id字段的解决办法