多线程理论部份

分享知识  传递快乐

 

什么是线程

线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。

 

为什么要使用多线程

为了解决负载均衡问题,充分利用CPU资源.为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.为了处理大量的IO操作时或处理的情况需要花费大量的时间等等,比如:读写文件,视频图像的采集,处理,显示,保存等

 

进程和线程的区别:

  • 线程共享内存空间,进程有独立的内存空间
  • 线程启动速度快,进程启动速度慢
  • 线程是执行的指令集,进程是资源的集合
  • 两个子进程之间数据不共享,完全独立。同一个进程下的线程共享同一份数据
  • 创建新的线程很简单,创建新的进程需要对他的父进程进行一次克隆
  • 一个线程可以操作(控制)同一进程里的其他线程,但是进程只能操作子进程
  • 同一个进程的线程可以直接交流,两个进程想要通信,必须通过一个中间代理来实现
  • 对于线程的修改,可能会影响到其他线程的行为。但是对于父进程的修改不会影响到子进程

 

多线程的好处:

  • 使用线程可以把占据时间长的程序中的任务放到后台去处理
  • 用户界面更加吸引人,这样比如用户点击了一个按钮去触发某件事件的处理,可以弹出一个进度条来显示处理的进度
  • 程序的运行效率可能会提高
  • 在一些等待的任务实现上如用户输入,文件读取和网络收发数据等,线程就比较有用了.

 

多线程的缺点:

  • 如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换.
  • 更多的线程需要更多的内存空间
  • 线程中止需要考虑对程序运行的影响.
  • 通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生

 

 

 

 

 

——————————
如有不足请留言指正
相互学习,共同进步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章