当前位置:网站首页>线程与进程------理论篇
线程与进程------理论篇
2022-07-19 00:54:00 【naoguaziteng】
目 录 
要想说线程,首先必须得先说说进程,因为线程是依赖于进程存在的.如果没有进程那么也就不会有线程啦!(由于理论知识太多啦!也会有许多友友不爱看那么多的白话文!所以以下内容需要 精简重点的只需要看绿色字体 哟!)
1.进程
进程的概述:
那么到底什么是进程呢?咱们打开任务管理器,通过任务管理器就可以看到进程的存在.任务管理器中的正在进行的任务便是进程!所以 进程就是正在运行的程序,是系统进行资源分配和调用的独立单位 .每一个进程都有它自己的内存空间和系统资源.同样,咱们的操作系统是支持多任务和多用户的!也就是支持多进程的!那么多进程的意义是什么呢?
多进程的意义:
最原始的单进程计算机只能做一件事情.而我们现在的计算机可大不相同啦!现在常见的操作系统都是多进程操作系统,比如:Windows,Mac和Linux等,能在同一个时间段内执行多个任务!
相信友友们也都拥有过一边玩游戏(游戏进程),一边听音乐(音乐进程)的愉悦!
那么对于单核计算机来讲,游戏进程和音乐进程是同时运行的吗?
当然 不是 啦!因为CPU在某个时间点上只能做一件事情,计算机是在游戏进程和音乐进程间做着频繁切换,且切换速度很快.所以,我们感觉游戏和音乐在同时进行,其实并不是同时执行的.还有需要注意的是多进程的作用不是提高执行速度,而是 提高CPU的使用率. 切勿被表面所迷惑哟!
2.线程
线程的概述:
线程是操作系统能够进行运算调度的最小单位. 在一个进程内部又可以执行多个任务,而这每一个任务我们就可以看成是一个线程.是程序使用CPU的基本单位.所以,进程是拥有资源的基本单位, 线程是CPU调度的基本单位.
多线程的意义:
程序在运行时,都是在抢CPU的时间片(执行权),如果是 多线程的程序,那么在抢到CPU的执行权的概率应该比较单线程程序抢到的概率要大. 那么也就是说,CPU在多线程程序中执行的时间要比单线程多,所以就提高了程序的使用率.那么在多线程程序中的哪个线程能抢占到CPU的资源呢,这个是不确定的,所以 多线程具有随机性.
补:并行和并发
并行 是指应用能够同时执行不同的任务, 例:吃饭的时候可以边吃饭边打电话, 这两件事情可以同时执行.并发 是指应用能够交替执行不同的任务, 其实并发有点类似于多线程的原理.并发与并行的 区别如下:
- 并行是逻辑上同时发生,指在某一个时间内同时运行多个程序。
- 并发是物理上同时发生,指在某一个时间点同时运行多个程序。
3.线程和进程的联系与区别
进程是指在系统中正在运行的一个应用程序. 程序一旦运行就是进程, 进程是资源分配的最小单位。线程是系统分配处理器时间资源的基本单元, 线程是程序执行的最小单位。也就是, 进程可以包含多个线程,而线程是程序执行的最小单位。进程相当于一个容器,线程是容器里面的东西!
4.Java程序运行原理和JVM的启动是多线程的吗?
Java程序运行原理中Java.exe 命令会启动java虚拟机,启动JVM(java虚拟机)等于启动了一个应用程序,也就是启动了一个进程。该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 main 方法。所以 main方法运行在主线程中的。 在此之前的所有程序都是单线程的。java执行原理的详细介绍在这里 ------> java执行原理(运行一个程序所经历的过程)_naoguaziteng的博客-CSDN博客_java执行过程
JVM的启动 是多线程 的。JVM启动后至少启动了垃圾回收线程和主线程,所以是多线程的。
由于大多数是理论知识,担心友友们看着脑瓜子疼!所以小编将理论知识与实际运用分开编写哈!
(小编也在努力学习更多哟!以后再慢慢分享的啦!)
希望对友友们有所帮助!!!!
边栏推荐
- 微服务高可用的2个关键技巧,你一定用得上!
- 【翻译】安全。SBOMs的价值
- 软链接和硬链接区别
- MySQL password modification error 1064 (42000):
- 【翻译】宣布Vitess 13
- [Niuke brush questions] / * daily four programming questions to share*/
- Differences and advantages between enterprise content management (ECM) and document management
- Deep understanding of ArrayList
- Flutter启动流程(Isolate机制+创建流程+线程练习)
- 每日刷题记录 (二十七)
猜你喜欢
Advanced numbers | [differential calculus of multivariate functions] concept chapter -- the relationship between continuity, partial differentiation and differentiability
Fast-lio, fast-lio2 and fast-lio
ReplicaSet
[Niuke brush questions] / * daily four programming questions to share*/
【牛客刷题】/*日常四道编程小题分享*/
Combing the measurement process of view
Jenkins学习笔记详细
RMAN backup compression ratio? About 5 times
个人开发的解ctf usb的键盘流量的工具 KeyboardTraffic
Arthas之动态加载类(retransform)
随机推荐
二——01Day:对象的索引理解,对象上的this指向,对象转换为字符串,函数的预解析,arguments.callee的用法,
【翻译】介绍一下Opta。Rails上的Terraform
EN 1504-2 concrete structure protection and repair products - CE certification
STM32状态机编程实例——全自动洗衣机(上)
Fast-lio, fast-lio2 and fast-lio
win11右键改为win10方式
一文搞懂Synchronized同步锁的作用范围
J9数字货币平台科普:Sui网络的双共识是如何工作的?
广发证券怎么样?网上开户安全吗?
Financial banking software testing super large strategy, the most popular financial banking big secret cover questions
Erreur de modification du mot de passe MySQL 1064 (42000):
【LeetCode每日一题】——108.将有序数组转换为二叉搜索树
每日刷题记录 (二十七)
【C 练习】公务员面试
Conditions and details of polar coordinate substitution for solving the limit of multivariate functions with high numbers
[translation] introduce OPTA. Terrain on rails
VLAN aggregation
WTO官方公布孙宇晨MC12发言全文 涉电子商务等重大议题
Advanced numbers | [differential calculus of multivariate functions] concept chapter -- the relationship between continuity, partial differentiation and differentiability
QQ group cannot download video and picture solutions