美文网首页
多线程编程的代价

多线程编程的代价

作者: Jaesoon | 来源:发表于2018-08-13 14:07 被阅读1次

从一个单线程的应用到一个多线程的应用并不仅仅带来好处,它也会有一些代价。不要仅仅为了使用多线程而使用多线程。而应该明确在使用多线程时能多来的好处比所付出的代价大的时候,才使用多线程。如果存在疑问,应该尝试测量一下应用程序的性能和响应能力,而不只是猜测。

  1. 增加设计的难度
    在程序设计时,如果涉及到共享资源的访问,需要谨慎的处理。线程之间的通信交互复杂。不正确的线程同步发生的错误很难发现,并且偶发性很强,不容易重现。
  2. 上下文切换的开销
    当CPU从一个线程切换到另外一个线程时,会对当前线程的数据进行存储,然后再载入要执行的线程的数据,程序指针等,这称之为上下文切换。CPU会在一个上下文中执行一个线程,然后切换到另外一个上下文中执行另外一个线程。上下文的切换并不廉价。如果可能,尽量减少上下文的切换。(处理一个事情,不是分工越细越好,切换的代价太大)
  3. 资源的消耗
    线程保存有自己的数据、指针和PC,这些都保存在内存中。同样,系统中也需要对线程进行管理,这也消耗资源。因此,需要衡量线程的数量。

相关文章

  • 多线程编程的代价

    从一个单线程的应用到一个多线程的应用并不仅仅带来好处,它也会有一些代价。不要仅仅为了使用多线程而使用多线程。而应该...

  • 多进程介绍和多线程的比较

    多进程编程 耗CPU的操作,用多进程编程, 对于IO操作来说用多线程,进程切换的代价要高于线程 1. 对于耗CPU...

  • 多线程编程

    多线程编程之Linux环境下的多线程(一)多线程编程之Linux环境下的多线程(二)多线程编程之Linux环境下的...

  • iOS多线程

    多线程编程

  • Python 并行编程

    多线程编程 Python 主要提供了包括thread、threading、Queue等多线程编程模块。thread...

  • 多进程和多线程的应用场景

    其实,使用多线程编程还是使用多进程编程,有一个简单的原则,如果能使用多线程实现的,就用多线程,不能使用多线程实现的...

  • Python多线程编程——多线程编程中的加锁机制

    如果大家对Python中的多线程编程不是很了解,推荐大家阅读之前的两篇文章:Python多线程编程——多线程基础介...

  • iOS 多线程编程 教程收录

    iOS多线程编程

  • Java多线程学习:Future、Callable

    Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四) 最近在写清结算文件...

  • 原子类型与原子操作

    原子类型和原子操作 并行编程、多线程与C++11 常见的并行编程有多种模型:共享内存、多线程、消息传递等。 多线程...

网友评论

      本文标题:多线程编程的代价

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