分享知识 传递快乐
什么是线程
线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。
为什么要使用多线程
为了解决负载均衡问题,充分利用CPU资源.为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.为了处理大量的IO操作时或处理的情况需要花费大量的时间等等,比如:读写文件,视频图像的采集,处理,显示,保存等
进程和线程的区别:
- 线程共享内存空间,进程有独立的内存空间
- 线程启动速度快,进程启动速度慢
- 线程是执行的指令集,进程是资源的集合
- 两个子进程之间数据不共享,完全独立。同一个进程下的线程共享同一份数据
- 创建新的线程很简单,创建新的进程需要对他的父进程进行一次克隆
- 一个线程可以操作(控制)同一进程里的其他线程,但是进程只能操作子进程
- 同一个进程的线程可以直接交流,两个进程想要通信,必须通过一个中间代理来实现
- 对于线程的修改,可能会影响到其他线程的行为。但是对于父进程的修改不会影响到子进程
多线程的好处:
- 使用线程可以把占据时间长的程序中的任务放到后台去处理
- 用户界面更加吸引人,这样比如用户点击了一个按钮去触发某件事件的处理,可以弹出一个进度条来显示处理的进度
- 程序的运行效率可能会提高
- 在一些等待的任务实现上如用户输入,文件读取和网络收发数据等,线程就比较有用了.
多线程的缺点:
- 如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换.
- 更多的线程需要更多的内存空间
- 线程中止需要考虑对程序运行的影响.
- 通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生
——————————
如有不足请留言指正
相互学习,共同进步