本文将从“操作系统”、“Java应用”上两个角度来探究这三者的区别。
一、进程在我本人的疑惑中,我有以下3个问题。
1.1为什么要引入进程?在“多道程序环境下”,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性以及不可再现性的特征,因此需要引入进程的概念。
(相关资料图)
1.2什么是进程?进程由什么构成。进程是程序执行的过程,包括了动态创建、调度和消亡的的整个过程,进程是程序资源管理的最小单位。好比下列汇编代码代码所示,包含对程序资源的调度。
_add_a_and_b: push %ebx mov %eax, [%esp+8] mov %ebx, [%esp+12] add %eax, %ebx pop %ebx ret _main: push 3 push 2 call _add_a_and_b add %esp, 8 ret
进程由三部分组成。
进程控制块(PCB),是进程存在的唯一标识,程序段数据段1.3Liunx进程实现Linux 并没有为线程准备特定的数据结构,因为 Linux只有task_struct这一种描述进程的结构体。在内核看来只有进程而没有线程,线程调度时也是当做进程来调度的。Linux所谓的线程其实是与其他进程共享资源的轻量级进程。
为什么说是轻量级呢?在于它只有一个最小的执行上下文和调度程序所需的统计信息,它只带有进程执行相关的信息,与父进程共享进程地址空间
二、线程2.1线程是什么?线程是操作操作系统能够运行运算调度的最小单位。线程被包含在进程之中,是进程中的实际运作的单位,一个进程内可以包含多个线程,线程是资源调度的最小单位。
在Liunx中,线程没有特定的数据结构,如何区别开来线程与进程的创建呢,这根据创建时参数的不同来决定,例如线程只有一个最小的执行上下文和调度程序所需的统计信息。
2.2线程拥有什么?同一进程中的多条线程共享该进程中的 全部系统资源,如
虚拟地址空间文件描述符号信号处理但是同一个进程的不同线程也有各自的信息,如
调用栈寄存器环境线程本次存储3.3线程分类
3.4 Java如何启动一个线程start– > start0 …..Native方法(由JVM中的c++调用)----> Liunx内核的 pthread_create方法
三、协程3.1 既然有多线程操作,为什么还要引入协程?操作系统在线程等待IO的时候,会阻塞当前线程,切换到其他线程,这样在当前线程等待IO的过程中,其他线程可以继续执行。这样操作在系统线程较少的时候没有多大问题,可是当线程数量非常多的时候,却产生了问题。一是系统线程会占用非常多的内存空间,二是过多的线程切换会占用大量的系统时间。
而协程刚好可以解决上述的两个问题。
3.2 协程的概念协程就是把原来每个线程分别负责的任务压缩到少量线程中,每个线程中用协程来实现原来线程级别的任务,因为包装了系统io导致协程内遇到io不会导致当前线程被挂起,以起到最大化利用时间片,减少线程调度开销的作用。
协程运行在线程之上,当一个协程运行完成后,可以选择主动让出,让另一个协程运行在当前线程之上。
协程并没有增加线程数量,只是在线程的基础之上通过分时复用的方式运行多个协程协程的切换在用户态完成,切换的代价比线程从用户态到内核台的代价小很多。3.3 协程的注意事项实际上协程并不是什么银弹,协程只有在等待IO的过程中才能重复利用线程,线程在等待IO的过程中会陷入阻塞状态。
假设协程运行在线程之上,并且协程调用了一个阻塞IO操作,这时候会发生什么?实际上操作系统并不知道协程的存在,它只知道线程,因此在协程调用阻塞IO操作的时候,操作系统会让线程进入阻塞状态,当前的协程和其它绑定在该线程之上的协程都会陷入阻塞而得不到调度,这往往是不能接受的。
3.4 Java中的应用--虚拟线程Java 19 已经预2022年9月20日发布,虚拟线程是其中的一项预览功能。
虚拟线程是轻量级的线程,它们不与操作系统线程绑定,而是由 JVM 来管理。它们适用于“每个请求一个线程”的编程风格,同时没有操作系统线程的限制。我们能够创建数以百万计的虚拟线程而不会影响吞吐。这与 Go 编程语言(Golang)的协程(如goroutines)非常相似。
Thread.startVirtualThread(() -> { System.out.println("Hello, Project Loom!");});
标签:
-
关于进程、线程、协程的概念以及Java中的应用
进程、线程、协程本文将从“操作系统”、“Java应用”上两个角度来探
-
天天观点:范先明_关于范先明的简介
音频解说1、范先明,翻译学博士,四川省学术和技术带头人后备人选,西
-
每日简讯:蔚来重磅官宣 全系大降价!
6月12日上午,蔚来汽车官宣调整全系新车价格与用车权益。从此次调整情
-
天气预报|明天重庆各地放晴 大后天部分地区又要下雨
12日白天,重庆市内大部地区迎来灿烂阳光,以阴天到多云为主,仅偏南及
-
东方园林: 关于为全资子公司提供担保的公告
东方园林:关于为全资子公司提供担保的公告
-
一对一洽谈 达成多项意向!中洪两国将不断深化务实合作
由中国贸促会与洪都拉斯经济发展部共同主办的首届中国—洪都拉斯高级别
-
全球观速讯丨理想汽车第三工厂,离开重庆回归北京?
汽车行业态势斗转,原本所谓造车新势力们已然不“新”了,也没太多人信
-
C-PHY笔记 Tips
C-PHY的 LP RX会一直处于工作状态检测总线电平,判断是否进入HS;
-
全球热点评!崇爱高速建设最新进度!亭亮镇安农村至明江镇白泉村段沥青上面层试验段顺利摊铺
近日,崇左至爱店高速公路前31 666km(亭亮镇安农村至明江镇白泉村段)
-
世界热文:月夜听琴(对于月夜听琴简单介绍)
聊聊一篇夜听琴,对于月夜听琴简单介绍的文章,网友们对这件事情都比较
-
环球时讯:蔚来涨超4% Q1营收同比增长7.7%
[db:列表描述]
-
“千万工程”调研行|再访余村:留住“绿”,迎来“青”|天天热门
“这次来余村,看看有什么大变化?”汪玉成笑着问道。 在“绿水青山
-
看世界应对极端天气应未雨绸缪
原标题:看世界应对极端天气应未雨绸缪今年以来,全球各地极端天气现象
-
全球动态:好看的电视剧推荐几部古装剧_好看的电视剧推荐几部
1、《来不及说我爱你》,《八千湘女上天山》都有一定的历史背景,有战
-
699元都买不了袜子?张雨绮道歉:语言表达不完整
日前,知名女星张雨绮在直播带货时,一款羊毛被售价699元,张雨绮直播
-
初音未来之主人欲泄 初音未来主人欲泄的工具漫画
1、有漫画。2、的话的话C社曾明确表示过不会出动画(尽管现在感觉越来
-
全球通讯!部分交友软件仍对未成年人“不设防”
多个社交App,在用户未进行“实名认证”的情况下,仍可正常使用。业内
-
三星正开发自有AI大语言模型 已投入全部GPU资源
【CNMO新闻】近日,据韩媒报道,三星电子于本月初已经正式开启了大语言
-
女子跳水比赛直播在线观看_女子跳水比赛直播
1、北京奥运会跳水赛程表比赛场地:国家游泳中心(水立方)CCTV电视直
-
【速看料】买二手房后发现房屋漏水怎么办(房屋漏水怎么办)
1、先在漏水最严重的位置进行原因排查,分析出具体是什么原因漏水。2、
-
环球今亮点!boe电子邮件_boe邮箱登陆
1、重申请 设置一个不就行了。本文就为大家分享到这里,希望小伙伴们会
-
显示器销量TOP10公布:AOC第一 小米第二
相关数据表示,在一季度中国大陆显示器的出货量为613万台;线上和市场
-
马克思主义哲学产生的直接理论来源是 马克思主义哲学的哲学史上所产生的伟大变革主要表现在|每日动态
1、实现了唯物论和辩证法、唯物主义自然观和唯物主义历史观的结合。2、
-
环球头条:日本羽田机场两架飞机疑似发生碰撞
据日本广播协会(NHK)10日报道,日本国土交通省当天发布消息称,当地
-
山东航空退市成定局!上市23年市值跌去九成,国航伸援手
早在2000年,山航便已在B股上市,这家在世纪之交曾名列前茅的航司,由
-
广州番禺警方通报“一男子在女厕门口偷拍”
6月7日21时55分,广州番禺警方接到群众报警称,一男子在大石街某广场一
-
花蕊 全球快看点
1、花蕊,1994年12月16日出生。2、在2011汽车模特大赛中,荣获陕西赛区
-
云集美股涨14.51%-每日速讯
云集美股涨14 51%---中国经济网北京6月10日讯云集美股周五收报0 22美元
-
打击欺诈骗保高压态势初步构建 每日速看
经济日报北京6月9日讯(记者吴佳佳)国新办9日举行政策例行吹风会,介
-
【天天快播报】逐步打造“15分钟社区就业服务圈”,浦东这个镇全面推进村居就业服务示范工作
近日,川沙新镇联合浦东新区就业促进中心,在界龙村村委会开展系列就业