多线程学习---简单了解下

简单了解下多任务相关

 

多任务

     不管是单核还是多核CPU,一单任务数量超过核数,OS都会把每个任务轮流调度到每个核心上,OS实现多线程和多进程往往都是通过时间片的形式执行的,即:每个任务(进程/线程)轮流执行,因为时间片切分的很小,以至于我们感觉多个任务在同时执行。

      实现多任务方式:多进程模式,多线程模式,多进程+多线程模式

  进程是资源分配的最小单位,线程是CPU调度的最小单位,每个进程至少含有一个线程,如何调度进程和线程,完全由操作系统决定,程序不能自己决定什么时候执行,执行多久时间

 

多线程

  一个进程内可以有多个线程(至少一个线程),多个线程共享进程的所有变量,同时对全局变量进行访问和改写容易出现混乱,所以需要用锁进行线程的同步控制。

     多线程的目的:最大限度的利用CPU资源。

     处理器的个数决定了同一时刻同时运行的最大线程数,如单核CPU某一时刻只能有一个线程在执行(微观串行),双核的CPU可以最多同时运行两个线程,可以做到微观并行。

 

多进程:

  一个进程内有一个默认线程,开多个进程处理不同的任务,每个进程有自己独立的内存空间,不共享对象,同步简单,但是开销较大。

 

简单对比下:

 

 

对比维度多进程多线程总结
数据共享,同步

数据共享复杂,需要IPC(进程间通信)

数据是隔离的,同步简单

共享进程数据,共享简单

同步复杂

各有优劣势,

视应用场景而定

内存,CPU

占用内存多,切换复杂,

CPU利用率低

占用内存少,切换简单,

CPU利用率高

线程占优
创建销毁,切换创建销毁,切换复杂,速度慢创建销毁,切换简单,速度快线程占优
编程调试编程简单,调试简单编程复杂,调试复杂进程占优
可靠性进程间不会互相影响一个线程挂掉,会导致整个进程挂掉进程占优
分布式

是应于多核,多机分布式,

一台机器不够,扩展较简单

适应于多核分布式进程占优

转载于:https://www.cnblogs.com/jijiji/p/6892674.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值