java多线程是用户线程还是内核线程(用户级线程和内核级线程的区别)

2024-07-22 23:09:25 7

java多线程是用户线程还是内核线程(用户级线程和内核级线程的区别)

本文目录

用户级线程和内核级线程的区别

  线程的实现可以分为两类:用户级线程(User-Level Thread)和内核线线程(Kernel-Level Thread),后者又称为内核支持的线程或轻量级进程。在多线程操作系统中,各个系统的实现方式并不相同,在有的系统中实现了用户级线程,有的系统中实现了内核级线程。以下是用户级线程和内核级线程的区别:(1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。(2)用户级线程的创建、撤消和调度不需要OS内核的支持,是在语言(如Java)这一级处理的;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。(3)用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。(4)在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。(5)用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。

用户线程和内核线程

Inter把 C P U 指令集 操作的权限由高到低划为4级

内核态权限大可以复制IO读写,网卡,内存等操作,用户态只能操作应用程序分配的空间 当需要进行高权限操作的时候,就需要从用户态切到内核态,比如,要读取文件,就需要从用户态切换到内核态(通过调用系统函数),进行文件读写,读写完成后再切换回来(普通IO时如果文件过大会进行多次用户和内核态的切换)

操作系统通过CS:IP来查找执行命令,其中CS的最低两位来表示内核和用户态(0:表示内核态,3:表示用户态,刚好符合inter权限)

切换时需要:

在没有DMA时

整个数据的传输过程,都要需要 CPU 亲自参与搬运数据的过程,而且这个过程,CPU 是不能做其他事情的

所以,DMA就是, 在进行 I/O 设备和内存的数据传输的时候,数据搬运的工作全部交给 DMA 控制器,而 CPU 不再参与任何与数据搬运相关的事情,这样 CPU 就可以去处理别的事务。

普通拷贝,byte b = read(),write(b);

文件大的话会循环进行更多次操作

mmap + write文件传输过程

sendfile文件传输过程

Java中通过transferTo来实现零拷贝,如果 Linux 系统支持 sendfile() 系统调用,那么 transferTo() 实际上最后就会使用到 sendfile() 系统调用函数

文件传输过程,其中第一步都是先需要先把磁盘文件数据拷贝「内核缓冲区」里,这个「内核缓冲区」实际上是磁盘高速缓存(PageCache) 读取磁盘数据的时候,需要找到数据所在的位置,但是对于机械磁盘来说,就是通过磁头旋转到数据所在的扇区,再开始「顺序」读取数据,但是旋转磁头这个物理动作是非常耗时的,为了降低它的影响,PageCache 使用了预读功能( 在传输大文件(GB 级别的文件)的时候,PageCache 会不起作用,那就白白浪费 DMA 多做的一次数据拷贝,造成性能的降低,即使使用了 PageCache 的零拷贝也会损失性能,PageCache 由于长时间被大文件占据,其他「热点」的小文件可能就无法充分使用到 PageCache,于是这样磁盘读写的性能就会下降了 )在高并发的场景下,针对大文件的传输的方式,应该使用「异步 I/O + 直接 I/O」来替代零拷贝技术

用户线程:使用Java,开启一个线程,在这个线程里实现线程的切换(不太准确,其实Java开启一个线程,就是创建了一个用户线程,同时创建了一个内核线程), 所以对于内核来说感知不到用户线程的存在,如果多个用户线程切换到某个线程在执行过程中IO阻塞,此时主线程(进程)就进入阻塞态,那么所有的用户现场都会阻塞

协程就是用户态的线程(好像在java线程里面自己实现的线程)

用户线程的特点:创建销毁快,支持大量的用户线程(创建用户线程比内核线程需要的空间要小的多),但是不能利用CPU多核,同时需要自己实现阻塞调度,否则会影响其他用户线程的执行

进程中的一个线程被阻塞,内核能调度同一进程的其他线程(就绪态)占有处理器运行,可以利用多核,但是线程数量不能过多

java多线程是用户线程还是内核线程(用户级线程和内核级线程的区别)

本文编辑:admin

更多文章:


今日人工客服入口(怎么呼叫人工服务)

今日人工客服入口(怎么呼叫人工服务)

这篇文章给大家聊聊关于今日人工客服入口,以及怎么呼叫人工服务对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录怎么呼叫人工服务联通微信营业厅找到人工服务入口京东人工客服入口抖音人工客服入口在哪头条95152怎么转人工客服怎么打电

2024年9月28日 19:20

慕课网官网河南财经政法大学(河南财经政法大学好吗)

慕课网官网河南财经政法大学(河南财经政法大学好吗)

各位老铁们,大家好,今天由我来为大家分享慕课网官网河南财经政法大学,以及河南财经政法大学好吗的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录河南财经

2024年10月6日 20:50

product name(product name和proper shipping name 是一个么)

product name(product name和proper shipping name 是一个么)

本文目录product name和proper shipping name 是一个么亚马逊如何申请修改产品名称product name如何用程序设置PRODUCT NAMEproduct name是什么牌子衣服product name是什么

2024年7月16日 23:24

jsonarray添加数据(怎么想向json数组中添加json数据)

jsonarray添加数据(怎么想向json数组中添加json数据)

本文目录怎么想向json数组中添加json数据jsonarray怎么添加元素如何获取jsonarray中 某个值js怎么给循环给json数组追加元素,json数组初始为空jsonArray.add的用法怎么在javascript里定义jso

2024年3月8日 13:10

newest(newest怎么读英语)

newest(newest怎么读英语)

其实newest的问题并不复杂,但是又很多的朋友都不太了解newest怎么读英语,因此呢,今天小编就来为大家分享newest的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录newest怎么读英语一个单词newes

2024年10月4日 16:40

pulse secure(win10系统安装软件提示Pulse Secure Application Launcher 缺少组件怎么办)

pulse secure(win10系统安装软件提示Pulse Secure Application Launcher 缺少组件怎么办)

本文目录win10系统安装软件提示Pulse Secure Application Launcher 缺少组件怎么办pulse secure 怎么用pulse secure怎么用pulse secure是不是监控软件pulse secure

2024年5月17日 01:29

数据库软件系统包括什么(数据库系统由哪几部分组成)

数据库软件系统包括什么(数据库系统由哪几部分组成)

本文目录数据库系统由哪几部分组成数据库系统包括哪几个部分数据库系统由哪些部分组成数据库系统的组成部分包括哪3个方面简述什么是数据库系统,及数据库系统的组成数据库系统主要包括数据库系统包含哪些部分数据库应用系统包括()数据库系统由哪几部分组成

2024年4月17日 20:50

怎样制作在线填表的小程序(微信如何制作在线登记表格)

怎样制作在线填表的小程序(微信如何制作在线登记表格)

这篇文章给大家聊聊关于怎样制作在线填表的小程序,以及微信如何制作在线登记表格对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录微信如何制作在线登记表格怎么做小程序,自动填写表格,然后生成无公式的excel表秒应小程序怎么创建有没

2024年9月2日 01:55

安卓手机端运行的adb工具(如何在android应用里执行adb 命令)

安卓手机端运行的adb工具(如何在android应用里执行adb 命令)

本文目录如何在android应用里执行adb 命令安卓adb是什么安卓手机上的调试工具adb驱动要怎么安装安卓adb工具包是什么如何用adb连接android手机android adb怎么使用如何在android应用里执行adb 命令ADB

2023年10月20日 11:20

java process(java中的Process)

java process(java中的Process)

其实java process的问题并不复杂,但是又很多的朋友都不太了解java中的Process,因此呢,今天小编就来为大家分享java process的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录java中的

2024年7月21日 18:10

openflow软件(openflow区分方向)

openflow软件(openflow区分方向)

大家好,如果您还对openflow软件不太了解,没有关系,今天就由本站为大家分享openflow软件的知识,包括openflow区分方向的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录openflow区分方向企业E

2024年7月27日 11:15

如何选购移门?滑动门是什么滑动门选购指南

如何选购移门?滑动门是什么滑动门选购指南

本文目录如何选购移门滑动门是什么滑动门选购指南滑动门如何防滑落推拉门上轨道好还是下轨道好为什么自己动手安装滑动门EED指的是什么门选购滑动门10大要点DIV+CSS 滑动门滑动门导航栏在html中怎么制作能用纯css加div做出幻灯片或滑动

2024年7月3日 09:39

物流公司网站模板(淘宝如何设置物流模板)

物流公司网站模板(淘宝如何设置物流模板)

本文目录淘宝如何设置物流模板物流、配送安装模版怎么设置如何建立物流配货网站货运公司简介模板求免费网站建设模板!!我是物流公司,求物流公司网站模板,大家帮忙推荐一下哈菜鸟怎么建物流公司网站物流公司网站建设哪家好淘宝,快递模板怎么设置,还有默认

2024年7月16日 09:22

设备管理器怎么打开(设备管理器快捷键)

设备管理器怎么打开(设备管理器快捷键)

本文目录设备管理器快捷键电脑怎么启动设备管理器电脑设备管理器怎么打开win7打开设备管理器快捷键电脑如何找到设备管理器设备管理器在哪 怎么打开设备管理器设备管理器怎么打开设备管理器快捷键设备管理器的快捷键是“win”+“x”,具体的使用方法

2024年5月5日 20:46

系统菜单在哪里(开始菜单在哪里)

系统菜单在哪里(开始菜单在哪里)

本文目录开始菜单在哪里win10在哪里设置开始菜单新代系统刀库登陆菜单在哪里电脑菜单栏在哪里打开win10系统开始菜单在哪里找不到开始菜单怎么办电脑系统设置在哪里找windows10菜单在哪Windows操作系统的菜单有哪些种类及如何打开开

2024年6月25日 23:55

jsp是什么期刊(《教学交流》杂志  是否为合法刊物)

jsp是什么期刊(《教学交流》杂志 是否为合法刊物)

本文目录《教学交流》杂志 是否为合法刊物如何快速查询sci期刊缩写《现代教育》是不是山东教育厅属下的正规杂志查找英文期刊缩写方法ieee communications letters是什么中国科教创新导刊(国内刊号:CN 11-5599

2024年4月20日 09:30

安卓市场tv版apk(apk电视软件怎么安装)

安卓市场tv版apk(apk电视软件怎么安装)

本文目录apk电视软件怎么安装如何直接在电视上安装apk文件如何在创维4k电视上安装安卓安装包在电视上怎么安装apk文件安卓智能电视怎么安装软件TV版 安卓市场有什么比较好的,应用多的apk电视软件怎么安装首先要你的电视是智能电视,支持安卓

2024年7月8日 02:34

网页计数器代码html(用html实现访问量n+1)

网页计数器代码html(用html实现访问量n+1)

大家好,关于网页计数器代码html很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于用html实现访问量n+1的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文

2024年7月7日 22:01

不能恋爱的秘密(有什么秘密打死都不能告诉女朋友的)

不能恋爱的秘密(有什么秘密打死都不能告诉女朋友的)

本文目录有什么秘密打死都不能告诉女朋友的不能恋爱的秘密第几集知道真相有什么秘密打死都不能告诉女朋友的当时做事的时侯,是个正常人完全能够做的很好,由于当时脑筋一时短路,自己缺做的一塌糊涂,并且还产生了大笑话。像这类的秘密打死也不能告诉女朋友以

2024年7月6日 02:57

数据管理与分析(数据管理和分析趋势正在改变世界)

数据管理与分析(数据管理和分析趋势正在改变世界)

本文目录数据管理和分析趋势正在改变世界数据管理与数据治理的异同点分析Excel中有哪些数据管理与分析的技术数据分析与管理是什么如何进行大数据分析及处理数据分析管理是什么意思数据处理与分析的步骤是怎么样excel数据处理与分析课程目的数据管理

2024年7月2日 04:14

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2342
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1735
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1168
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1164
标签列表

热门搜索