线程间效率的问题

线程间效率的影响不外乎是对硬件资源的争用问题的影响:

 

1、对CPU调度的争用,若CPU使用经常性的80%以上,一个线程的操作必然影响其它线程的效率,因为CPU忙不过来了。

2、对内存的争用,多个线程间通常都共用一些全局缓存(若没有全局缓存,那使用进程应该还更安全)。访问或者改变全局缓存时通常都有锁,比方说“读写锁”或者其它类型的锁,一个线程锁住该资源后,其余的线程必须等待该线程释放资源才能继续运行下去。这时候若“锁”的位置不对,比方说锁得太早,解锁得太晚导致的该线程锁住资源时间太长,那么必然导致其余线程缓慢。

 3、对硬盘的争用,硬盘速度通常都是非常缓慢的,若大量线程同时访问硬盘,毫无疑问,硬盘读取速度有限,开再多线程都是需要这么多时间,在这种情况下,很多线程必须等待IO,造成其余线程缓慢。如楼上提到的SQL访问,很大一部分就是对硬盘争用的问题。


4、在多线程程序中必须得访问单线程的组件所造成的影响,以前很多组件都是针对单线程写的,在调用这些组件时由于众多线程都必须过单线程组件这个独木桥,造成其余线程等待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值