欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

摘要:内核空间和用户空间的线程

最编程 2024-04-06 19:32:41
...
国产数据库圈,为啥那么多水货?”

java1.1版本之后创建线程都是基于内核空间进行创建的,即内核级别线程 ,线程的CPU竞争策略,线程执行的执行次数(既然交给内核,JVM就控制不了了)等由系统进行管理,虽然进程对于线程执行的次数,调度无法控制,但是可以控制线程的挂起,优先级等,如sleep()方法,wait方法,设置线程优先级等;

内核级别线程有系统调度器调度,肯定可以享受多核的好处,而用户级别线程是通过模拟实现调度,由于其映射的调度实体(进程或者映射的内核级线程)才是系统调度器的调度单位,所以与内核级线程相比,其对资源的访问确实存在一定的限制。

系统的内核由系统管理,系统会最大程度的保护内核的安全,哪怕牺牲部分用户进程(用户进程一般主要占用用户空间资源,进程运行过程也可以调用内核资源),所以一般我们无需考虑内核的稳定性,因为内核一定会比用户空间稳定的。

内核空间:由系统进行管理,如线程

地址空间就是线程被分配的内存地址,线程运行起来的前提条件是分配了内存。

进程是有空间地址的;而多线程也是存在空间地址的;特点如下:

特点
各线程空间地址间相互独立;
共享临界空间的资源;
线程死锁问题:a线程占用了线程临界资源没有释放的话,其他线程进不去,导致线程死锁,有一句难听的话就是占着茅坑不xxx;

 

推荐阅读