Java并发编程之性能、扩展性和响应
对于另外一种需要较多IO等待的程序来说,利用多线程技术也能提高整体性能。相反,因为调度器需要负责更多线程的创建和关闭,也会占用CPU资源,反而有可能降低性能。线程的使用对性能的提升也会有所影响。不仅如此,调度器也会对它自己内部的数据结构进行更新,而这也需要消耗CPU周期。所有这些都意味着,线程之间的上下文切换会消耗CPU计算资源,因此带来相比单线程情况下没有的性能开销。多线程程序所带来的另外一个开销来自对共享数据的同步访问保护。当前线程需要等待,直到它成功获得了锁对象。把一个等待状态的线程挪回到执行队列也会带来额外的开销。因此,我们要尽力避免由于锁竞争而带来的上下文切换。
用户评论