首页 » JAVA并发编程实战 » 正文

(1)多线程带来的性能开销问题

在设计良好的并发程序中,线程能提升程序的性能,但无论如何,线程总会带来某种程序的运行时开销.
在多线程程序中,当线程调度器临时挂起活跃线程转而运行另外一个线程时,就会频繁地出现上下文切换操作(Context Switch),
这种操作将带来极大的开销:保存和恢复执行上下文,丢失局部性,并且CPU时间将更多地花在线程调度而不是线程运行上,当线程共享数据时,
必须使用同步机制,而这些机制往往会抑制某些编译器的优化,使内存缓存区中的数据无效,以及增加共享内存总线的同步流量,所有这些因素都将带来额外的性能开销.第11
章将详细介绍如何分析和减少这些开销.

发表评论