线程的模型
来源:互联网 发布:比价商城源码 编辑:程序博客网 时间:2024/06/07 18:49
1、内核线程:直接由操作系统内核支持的线程。用户线程不能直接调用系统内核线程,出现一个轻量级进程供用户调用,该轻量级轛程由操作系统创建,运行,调度,切换,映射到cpu上。是1:1的模型如下图所示:
其中P是用户的进程,由多个LWP(轻量级进程)同时执行,KLT(内核线程)。轻量级线程与内核线程是1:1的关系。
因此,LWP的创建 、执行、调度、映射到cpu上 、进程的切换都需要操作系统的支持,因此会很消耗操作体统的资源。
2、用户线程
用户线程狭义上讲,用户线程完全建立在用户空间的线程库上,系统的内核完全不能感知线程的存在,用户线程的创建、切换、同步、映射完全由用户编写编写程序,因此很难实现。1:N模型如下图所示:
3、用户线程与轻量级进程混合实现(N:M多对多模型)
这种模型可以减少系统资源的耗费。用户线程的创建、切换、析构等操作很廉价,用户线程可以与轻量级进程相对应,因此内核线程可以对用户的线程进行调度以及映射到cpu上执行。大大提高的系统的使用效率以及资源的最大化使用。
对于java线程的实现还是要看操作系统自身线程的实现策略;
对于sun JDK来说无论是windows还是linux,使用的都是1:1模型,一个java的线程对应一个轻量级进程来实现
0 0
- COM的线程模型
- tomcat的线程模型
- Win32的线程模型
- WPF的线程模型
- os的线程模型
- WPF的线程模型
- Solaris的线程模型
- WPF的线程模型
- WPF的线程模型
- COM的线程模型
- WPF的线程模型
- mina的线程模型
- WPF的线程模型
- memcached的线程模型
- memcached的线程模型
- Chrom 的线程模型
- Memcached的线程模型
- java 的线程模型
- iOS 开发 OC编程 属性和字符串练习
- SqlServer循环插入10000条数据
- 更换temp表空间时hang住
- iOS 开发 OC编程 数组冒泡排序.图书管理
- oracle习题之基本命令
- 线程的模型
- weblogic笔记
- HDU5534 Partial Tree(15年亚洲区长春站) DP
- IP数据报结构详解
- iOS 开发 OC编程 字典和集合 排序方法
- Leetcode || Valid Sudoku
- Ubuntu 下安装 Sublime Text 3
- Java 字符串 (操作)
- CentOS6.7下yum安装saltstack主控端(salt-master)