linux线程点滴
来源:互联网 发布:美国红脖子 知乎 编辑:程序博客网 时间:2024/06/07 06:03
1、(http://bbs.csdn.net/topics/330224117)
Linux其实是没有线程的概念,所谓的线程不过是一个轻量级的进程
内核线程拥有 进程描述符、PID、进程正文段、核心堆栈
用户进程拥有 进程描述符、PID、进程正文段、核心堆栈 、用户空间的数据段、堆栈、堆
用户线程拥有 进程描述符、PID、进程正文段、核心堆栈,用户空间的堆栈,同父进程共享用户空间的数据段和堆
2、http://bbs.csdn.net/topics/390080474
clone用于创建轻量级进程,即创建的子进程与父进程共用线性地址空间,只是他们的堆栈不同而已(进程ID应该也不同),linux 2.4用户线程就是基于此实现的。
fork创建的子进程与父进程使用的不同的线性地址空间,是完全的进程概念。
3、http://read.newbooks.com.cn/info/199055.html
POSIX thread是用户级线程,但是具体实现是OS决定的;
POSIX是一个标准,符合该标准的,给用户的接口是一样的,比如创建线程:pthread_create函数,但是该函数肯定调用了底层的实现,至于怎么实现的,不同的操作系统是不一样的。windows不知道,Linux下的实现和fork类似,都是调用clone为新进程(线程)准备执行环境,然后等待调度。
4、http://blog.chinaunix.net/uid-27013571-id-3594191.html
对内核线程的虚拟空间总结一下:
1、创建的时候:
父进程是用户进程,则mm和active_mm均共享父进程的,然后内核线程一般调用daemonize适头舖m
父进程是内核线程,则mm和active_mm均为NULL
总之,内核线程的mm = NULL;进程调度的时候以此为依据判断是用户进程还是内核线程。
2、进程调度的时候
如果切换进来的是内核线程,则置active_mm为切换出去的进程的active_mm;
如果切换出去的是内核线程,则置active_mm为NULL。
- linux线程点滴
- linux 点滴
- linux 点滴
- 点滴linux
- linux 点滴
- linux 点滴
- Linux 点滴
- linux点滴
- linux点滴
- Linux 点滴
- 【点滴】android线程
- Qt线程点滴
- C# 线程点滴
- 关于线程的点滴杂记
- linux使用经验点滴
- Linux 使用点滴
- Linux知识点滴
- Linux系统管理点滴
- 盒模型代码简写
- css知识笔记(一)——基础知识、选择器、元素分类
- 学习WinPhone开发之路
- guava学习(一)ComparisonChain 源码分析
- 进行单元测试
- linux线程点滴
- 第七周 项目一-图形用户界面(GUI)应用程序开发初体验
- C# 将数据导出到Execl汇总
- begin和declare
- List<T> 分页方式,泛型分页方式
- 【记录】STM32在IAR中调用之printf函数的一个方法
- cocos2dx 实现橡皮擦效果以及判断何时擦除完毕
- JLink v8刷固件
- 第八周项目一实现复数类中的运算符重载(3)