当前位置:   article > 正文

线程切换的开销

线程切换的开销

从单线程应用到多线程应用带来的不仅仅是好处。也会带来开销。不要仅仅在一个应用中使用多线程仅仅是因为你能够(会)使用多线程。你应该能确定使用多线程带来的好处要远远多于它带来的花销。如果不能够确定,那么请尝试测量应用的性能和响应性,不仅仅是猜测。

更复杂的设计

尽管多线程应用的某些部分要比单线程应用更加简单,但是应用的另一些部分会变得更加复杂。当一个多线程应用访问共享数据时要特别注意。线程的交互一点也不简单。错误总是在不正确的线程同步中产生,而且很难发现、重现、修复。

线程切换开销

当一个cpu从一个线程切换到另一个线程时,cpu需要保存当前线程的本地数据,程序当前的指针等,然后加载下一个等待执行的线程的本地数据,程序指针等。这种切换被称之为上下文切换。cpu从执行一个线程切换去执行另一个线程。

上下文切换需要花费很多资源。除非必要,你不要去切换上下文。

你能够读更多的信息关于上下文在维基百科上面。

增加的资源消耗

为了启动一个线程需要消耗一些计算机的资源。而且一个线程cpu时间(?)需要一些内存来存储它的本地的栈。它也会在操作系统中占据一些资源来管理线程。尝试创建一个拥有100个线程的程序,每一个线程什么都不做,仅仅是等待,然后看看当这个应用运行的时候占据了多少内存。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/254774
推荐阅读
相关标签
  

闽ICP备14008679号