Linux 进程以及多线程的支持
1.最初内核并没有实现对多线程的支持,2.6之后开始以轻量级进程的方式对多线程进行支持(轻量级线程组).
a.在2.6 之前,如果需要实现多线程,只能在用户态下实现,用户程序自己控制线程的切换,
实际是N:1的对应关系,因为此刻内核调度是按进程的,不管应用中有多少个线程,它也只
能共享调度,如果有任何一个线程调用阻塞控制,那么整个进程的调度也就阻塞了。
b.在2.6 之后NPTL 实现了轻量级进程,对应一个内核线程,在此基础之上结合a中的原理,
就可以实现N:N 的对应关系,即用户进程中n个线程对应1个轻量级进程,这样一个用户
进程就可以对应多个轻量级进程(内核线程)。
关于线程和轻量级线程:其实他们都是执行序列而已,在用户程序中我们称执行序列为线程,
在内核中我们称一个执行序列为轻量级进程(LWP),因为内核中
没有线程的的概念,内核中的调度是以进程为单位的。
关于轻量级进程和重量级进程:区别在于LWT 可以实现资源共享,HWT却只能独享资源。
2.需要深入了解:
NPTL(Native Posix Thread Library),由RedHat 负责。
NGPT(Next Generation Posix Thread Package), 这个已经被IBM 放弃。
Linux 进程以及多线程的支持的更多相关文章
- Linux中查看进程的多线程pstree, ps -L
Linux中查看进程的多线程 在SMP系统中,我们的应用程序经常使用多线程的技术,那么在Linux中如何查看某个进程的多个线程呢? 本文介绍3种命令来查看Linux系统中的线程(LWP)的情况:在我的 ...
- 【转】 Linux下的多线程编程
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/07/280 ...
- Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的 Unix也支持线程的概念,但是在一个进程(proces ...
- 【转】Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的 Unix也支持线程的概念,但是在一个进程(proces ...
- 《转》Linux下的多线程编程
原地址:http://linux.chinaunix.net/doc/program/2001-08-11/642.shtml 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程 ...
- Linux进程和线程的比較
进程与线程 參考:http://www.cnblogs.com/blueclue/archive/2010/07/16/1778855.html 首先比較Linux进程和线程的创建的差别,以此展开: ...
- Linux性能及调优指南(翻译)之Linux进程管理
本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...
- OS之进程管理---多线程模型和线程库(POSIX PTread)
多线程简介 线程是CPU使用的基本单元,包括线程ID,程序计数器.寄存器组.各自的堆栈等,在相同线程组中,所有线程共享进程代码段,数据段和其他系统资源. 传统的的单线程模式是每一个进程只能单个控制线程 ...
- 第9章 Linux进程和信号超详细分析
9.1 进程简单说明 进程是一个非常复杂的概念,涉及的内容也非常非常多.在这一小节所列出内容,已经是我极度简化后的内容了,应该尽可能都理解下来,我觉得这些理论比如何使用命令来查看状态更重要,而且不明白 ...
随机推荐
- Firefox mobile (android) and orientationchange
Firefox for Android does not support the orientationchange event but you can achieve the same result ...
- 创建可复用的自定义 ASP.NET MVC Helpers
通常,在ASP.NET MVC项目中App_Code目录下新建.cshtml编写类似下方的代码就能创建自定义的MVC Helper了, 假设文件名为StrHelper.cshtml,那么在别的视图中的 ...
- java invoke(转摘)
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制 ...
- SHOI2013 扇形面积并
题目链接:戳我 补一张图 我们尝试把圆上的扇形转化成直线上的矩形--我们维护[1,2*m]的区间,那么每个能产生贡献的子区间的长度*第K大的半径的平方的总和就是answer了. 怎么转化呢?左端点为a ...
- Linux基础命令(一)
Linux语法命令 [选项] 参数注意:[]内容是对命令的扩张1.命令中单词之间空格隔开2.单行命令最多256个字符3.大小写区分 clear 清屏pwd 查看当前目录cd 切换目录 .表示当前 ...
- “全栈2019”Java多线程第一章:认识多线程
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- jmeter进行https协议的测试
一.HTTPS和HTTP的区别 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息.HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和 ...
- [javascript]——将变量转化为字符串
这是一个非常常用,但是我自己却经常忘记的一个方法: var item = 'textssdf'; console.log("'"+item+"'") > ...
- 耗时 2 年,用 8.5 万块乐高积木最牛复刻 Apple Park
简评:国外大佬复刻 Apple Park,看了一下细节,确实厉害!只有你想不到,没有乐高拼不起来的,有没有乐高大神挑战一下? 苹果公园以各种各样的方式鼓舞人心,让人感兴趣.从建筑.可持续性和成本,到像 ...
- numpy 常用方法2
Python之Numpy基础 一个栗子 >>> import numpy as np >>> a = np.arange(15).reshape(3, 5) & ...