美文网首页
线程的缺点

线程的缺点

作者: Erich_Godsen | 来源:发表于2021-10-22 09:26 被阅读0次

很多人面试都会被问到线程和进程的区别,大家可以去看看知乎上的回答,我在这里就不再多做赘述。今天主要想聊一聊线程的缺点。
第一点线程增加了项目的复杂度,在编写多线程代码的过程中,时刻要关注死锁,多并发等问题。虽然进程的子线程通常具有独立的局部变量,但是他们却共享同一块全局内存,这个共享地址空间的竞争和临界区管理非常困难,很容易增加整体的系统复杂度,复杂度的增高也就意味着bug的增多,虽然底层已做了很多工作,但是还是不可避免的会出现死锁等问题。
第二点时序依赖,线程容易带来bug的一个重要原因是它们太容易知道彼此的内部状态,与有着独立地址空间,必须明确IPC通信的进程不同,线程没有自动封装,因此在编写多线程代码的时候,不仅要面对多并发的问题,还要面对“时序依赖”的问题。
第三点线程常常阻碍了抽象,为了防止死锁,在引入第三方库的时候要格外注意线程的用法是否规范,同样的如果编写的是底层工具库,还要注意应用层所带来的影响。
第四点可能带来性能问题,尽管线程没有快速转换进程上下文的开销,但是锁定共享数据结构以防止互相干涉的开销也很大,有的时候这些性能成本超过了进程分解为多线程所带来的优势。这一点在Android开发中应该深有体会,Android为何将UI的操作全部放到主线程中来执行,而在子线程中不允许操作UI,就是基于这个原因,如果要支持子线程操作UI,就要设计同步互斥机制,代价高昂且得不偿失。

相关文章

  • 多线程基本概念

    一、什么进程 二、什么线程 三、什么是多线程 四、主线程和子线程 主线程: 子线程: 多线程的优缺点优点: 缺点 ...

  • 其他快速开启线程的方法

    创建线程后自动启动线程 隐式创建并启动线程 ● 上述2种创建线程方式的优缺点● 优点:简单快捷● 缺点:无法对线程...

  • 线程的缺点

    很多人面试都会被问到线程和进程的区别,大家可以去看看知乎上的回答[https://www.zhihu.com/qu...

  • 多线程

    内存耗时问题 线程是进程的基本执行单元 多线程的优缺点 优点: 缺点: 多线程的作用: 多线程中同步和异步的概念 ...

  • iOS 多线程开发

    一、NSThread 1、创建和启动线程 2、其他创建线程方式 上述2种创建线程方式的优缺点优点:简单快捷缺点:无...

  • C++11:并发

    线程 多线程的优缺点:优点:轻量的进程 ,线程间的通讯更迅速缺点:不好实现,不能运行在分布式系统上 一个线程的简单...

  • java线程池技术总结

    常用的线程池有哪些? 常用线程池的优缺点对比?

  • 多线程介绍

    一、进程与线程 进程介绍 线程介绍 线程的串行 二、多线程 多线程介绍 多线程原理 多线程的优缺点 多线程优点: ...

  • Swift4: Timer的缺点与GCD定时器的简单封装

    Timer的缺点 缺点1Timer的创建与撤销必须在同一个线程操作,在多线程环境下使用不便. 缺点2使用时必须保证...

  • Chapter-3.2 [线程]

    多线程的优点 线程的几种实现方式 用户线程的优点 用户线程的缺点 内核线程的优点: 用户级线程和内核级线程的区别 ...

网友评论

      本文标题:线程的缺点

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