永发信息网

java 用户级线程和核心级线程的区别是什么

答案:1  悬赏:70  手机版
解决时间 2021-11-20 07:06
java 用户级线程和核心级线程的区别是什么
最佳答案
1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。
2.用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,少了进出内核态的消耗,但不能很好的利用多核Cpu,目前Linux pthread大体是这么做的。
3.线程的实现可以分为两类:用户级线程(User-Level Thread)和内核线线程(Kernel-Level Thread),后者又称为内核支持的线程或轻量级进程。在多线程操作系统中,各个系统的实现方式并不相同,在有的系统中实现了用户级线程,有的系统中实现了内核级线程。
4.用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进 程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。不需要用户态/核心态切换,速度快,操作系统内核不知道多线程的存在,因此一个线程阻塞将使得整个进程(包括它的所有线程)阻塞。由于这里的处理器时间片分配是以进程为基本单位,所以每个线程执行的时间相对减少。
5.内核线程:由操作系统内核创建和撤销。内核维护进程及线程的上下文信息以及线程切换。一个内核线程由于I/O操作而阻塞,不会影响其它线程的运行。Windows NT和2000/XP支持内核线程。
6.用户线程运行在一个中间系统上面。目前中间系统实现的方式有两种,即运行时系统(Runtime System)和内核控制线程。“运行时系统”实质上是用于管理和控制线程的函数集合,包括创建、撤销、线程的同步和通信的函数以及调度的函数。这些函数都驻留在用户空间作为用户线程和内核之间的接口。用户线程不能使用系统调用,而是当线程需要系统资源时,将请求传送给运行时,由后者通过相应的系统调用来获取系统资源。内核控制线程:系统在分给进程几个轻型进程(LWP),LWP可以通过系统调用来获得内核提供的服务,而进程中的用户线程可通过复用来关联到LWP,从而得到内核的服务。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国的古代报纸是怎么诞生的
这种线怎么打出来
画漫画如何画出镜子中的人的效果,就是镜子屏
东麓驿境怎么样?好不好?值不值得买?
母猪喝生姜水有副作用么了?
中国为什么坚定不移的走和平发展的道路
一幢楼有四个男人,一楼男人在阳台上吃黄瓜,
天津的人口民族
股票中“B.S点”是什么意思?
中石油昆仑燃气有限公司地址在什么地方,我要
乡加油站地址有知道的么?有点事想过去!
名图适合1.60身高开吗
以《学与玩》写一篇作文。 可以写自己或他人
盗窃6000元手机可以判刑多少年
从桂平到桂林平禾乐县怎么坐车
推荐资讯
天然气报警器上的阀门按了一下就没有气了,在
帮忙解释一下"土国城漕,我独南行"?
请问,我使用滴滴打车坐车
John Collins的回旋纸飞机!只看楼主收藏
河南省洛阳市新安县到新义,义安,孟津矿这三
怎样下载别人新浪微博的个人封面图(不是模板
支模架钢管验收
自行车飞轮晃动大怎么办
性格特别像男生满口脏话脾气很大,但是为人还
哈佛h61.3跟1.5哪个好
金乡一中是不是省重点?
怎么做大饼
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?