JUC学习-2-进程、线程、纤程(协程)基本概念
JUC学习-进程、线程、纤程(协程)基本概念
一、什么是进程:
官方说法: 在操作系统中,进程是基本的资源分配单位,操作系统通过进程来管理计算机的资源,如CPU、内存、磁盘等。每个进程都会有一个唯一的进程标识符(PID),用于区分不同的进程。
通俗说法: 可以看作是正在执行的程序 如QQ.exe
例如:
当wechat.exe未被执行的时候,只是一个“死”的可执行文件,当执行文件以后,操作系统就会为其创建一个进程,并非陪cpu 内存 磁盘等...
二、什么是线程:
一个进程可以包含多个线程,每个线程都可以独立执行不同的任务,但它们共享进程的资源。
一个CPU核心自能运行一个线程,也就是CPU内核和同时运行的线程数是1:1的关系,也就是说8核CPU同时可以执行8个线程代码
三、什么是纤程(协程):
Java19才支持纤程
或者使用第三方协程库quasar
底层角度:
1、协程可以再一个线程内部创建多个协程,这些协程之间可以共享同一个线程资源
2、协程是在同一个进程内部运行的,不需要操作系统介入,可以在用户空间内(如JVM)实现协作式多任务处理,因此协程的创建核销毁开销很小,可以更高效地利用资源系统。
总结:
先有进程(最小资源分配单位 分配CPU 内存...),进程可以创建线程,线程是依附在进程里面的。线程里面可以包含多个协程
进程之间不共享全局变量,线程之间共享全局变量,但是要注意资源竞争的问题
本文来自博客园,作者:skystrivegao,转载请注明原文链接:https://www.cnblogs.com/skystrive/p/18932431
整理不易,如果对您有所帮助 请点赞收藏,谢谢~