美文网首页
多线程的开销

多线程的开销

作者: yang2yang | 来源:发表于2017-09-13 21:12 被阅读84次

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

更复杂的设计

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

线程切换开销

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

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

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

增加的资源消耗

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

ps:本人只是一个自学英语一段时间的初级程序猿。无论是英语翻译程度,还是技术理解程度都远远不足,如果文中有翻译不到位,或者技术理解错误情况,还请各位指出,必定改正,也可相互学习交流。

相关文章

  • 多线程的开销

    从单线程应用到多线程应用带来的不仅仅是好处。也会带来开销。不要仅仅在一个应用中使用多线程仅仅是因为你能够(会)使用...

  • 04.性能问题

    性能问题 尽管使用多线程的初衷是提高性能,但与单线程的方法相比,多线程会引起一些额外的开销。造成这些开销的操作包括...

  • Java多线程汇总

    1、多线程介绍 多线程优点 资源利用率好 程序设计简单 服务器响应更快 多线程缺点 设计更复杂 上下文切换的开销 ...

  • julia distributed pmap pycall调用第

    【序言】 简单的逻辑使用多线程解决,开销比较小(本文不讨论多线程,只讨论多进程)复杂的业务逻辑用多进程解决 在使用...

  • 我理解的多线程

    No.1 --什么是多线程 ** 举个栗子??** 1.对于 Windows 系统来说,【开桌子】的开销很大,因此...

  • dubbo初了解 异步调用

    异步调用 基于 NIO 的非阻塞实现并行调用,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多线程开销较...

  • 多线程是把双刃剑

    前言: 今天就简单分享下java多线程的特性。多线程的优势有很多,他可以以比较小的性能开销来同时完成更多的任务。同...

  •   应用开发中经常使用多线程。多线程编程提高了程序的执行效率,很大程度上降低了主线程的开销。但同时可能带来data...

  • IOS多线程

    IOS多线程 IOS多线程的开销内核数据结构-大约1KB。栈空间-子线程512KB,主线程1MB。(通过线程对象可...

  • Java 并发/多线程教程(三)-多线程的开销

    本系列译自jakob jenkov的Java并发多线程教程,个人觉得很有收获。由于个人水平有限,不对之处...

网友评论

      本文标题:多线程的开销

      本文链接:https://www.haomeiwen.com/subject/vewlsxtx.html