OS-线程

为什么要线程:

线程管理:thread

read()阻塞了整个进程

多进程实现:

 

 

线程:进程当中的一条执行流程

重新看待进程:

资源平台(管理资源)+线程=进程

资源平台:地址空间(代码段、数据段)、打开的文件等

有独立的部分,也有共享的部分

线程=进程-共享资源

安全可靠性没有保障

应用场景:

强调性能-线程

浏览器基本都采用进程的机制来实现(CHROME),某一个网页崩溃后,不会影响其他网页

独立的寄存器(程序计数器等)和堆栈

共享的代码段、数据及文件网络等等

 

进程是资源分配的单位、线程是cpu调度的单位

创建时间短:内存管理、文件管理

终止时间短:不需要考虑资源释放的问题

同一个进程的线程切换时,不需要切换页表,这就是高效的原因(cache信息、TLB信息)

 

线程的实现:

用户线程:由用户线程库来管理,内核线程看不见用户线程信息

内核线程由内核来管理

看不见,没特权

操作系统可以看得见

进程做资源管理

每次线程切换都需要进行由用户态->内核态的切换(?????)

https://www.jianshu.com/p/38ea929e1668(用户态与内核态)

轻量级进程:

内核支持的用户线程。一个进程可以有一个或多个轻量级进程,每个轻量级进程由一个单独的内核线程来支持(solaris/linux)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值