内核线程和用户态线程

读书看到下面这一段,不太理解,就搜了一下,学了很多东西。


[img]http://dl2.iteye.com/upload/attachment/0101/1229/77b038f5-c8a0-3683-a4c6-b9c1ac9b2f61.jpg[/img]

线程的实现可以分为两类:用户级线程(User-Level Thread)和内核线线程(Kernel-Level Thread).后者又称为内核支持的线程或轻量级进程.

用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。



内核线程: 由操作系统内核创建和撤销。内核维护进程及线程的上下文信息以及线程切换。一个内核线程由于I/O操作而阻塞,不会影响其它线程的运行。Windows NT和2000/XP支持内核线程


用户线程:由应用进程利用线程库创建和管理,不以来于操作系统核心。不需要用户态/核心态切换,速度快。操作系统内核不知道多线程的存在,因此一个线程阻塞将使得整个进程(包括它的所有线程)阻塞([color=red]此处存疑[/color])。[size=large][color=red]由于这里的处理器时间片分配是以进程为基本单位,所以每个线程执行的时间相对减少。[/color][/size]


linux创建内核线程的函数是kernel_thread,kthread_create,kthread_run,头文件在“linux/kthread.h”,有些操作系统(ubuntu)中可能默认找不到头文件,要到/usr/src/linux-headers×/include目录下复制

参考:
[url]http://dashan8020.blog.163.com/blog/static/4796750420115180227132/[/url]
[url]http://blog.csdn.net/cybercode/article/details/7081793[/url]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值