多线程基础知识

编程技术  /  houtizong 发布于 3年前   48

一.进程和线程

进程就是一个在内存中独立运行的程序,有自己的地址空间。如正在运行的写字板程序就是一个进程。

“多任务”:指操作系统能同时运行多个进程(程序)。如WINDOWS系统可以同时运行写字板程序、画图程序、WORDEclipse等。

线程:是进程内部单一的一个顺序控制流。

线程和进程

a.       每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大。

b.       线程:轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。

c.       多线程:在同一个进程中有多个顺序流同时执行。

 

二.多线程的优点

       a.并发执行,提高效率(并不一定在每一台机器上都能实现,与计算机的实现相关)。

       b.当前没有处理的任务时,可以将处理器时间让给其它任务

       c.可以随时终止线程任务

       d.只有一个处理器,实现同步动作的模拟

       e.多处理器情况下提高设备利用率

 

三.适宜使用多线程的场合

       要用到多线程的情况主要是需要处理大量的IO操作时或处理的情况需要花费大量时间等等,比如读写文件,视频图像的采集、显示、处理、保存等。

       慢速设备与快速设备并存协调时,采用多线程是非常有效的。

       慢速设备有:IO、网络、硬盘

       快速设备有:内存、CPU、寄存器

 

四.多线程的缺点

       a.等待共享资源、独占性资源时处理速度变慢

       b.容易造成死锁,资源竞争,无限等待

       c.当线程数量增多时,对线程管理需要额外的CPU开销

 

五.不适宜使用多线程的场合

       a.启动、终止和销毁线程对象都需要占用开销,若线程用于简短的后台任务,则不适合

       b.容易造成死锁的情况

 

六.合理使用多线程

       a.多线程技术是一把双刃剑

       b.线程的选取要考虑设备的情况

 

多线程并存->云计算

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客