搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
羊村懒王
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【flutter】第一个flutter项目
2
HarmonyOS 鸿蒙开发DevEco Studio:使用真机进行调试_华为真机调试开发
3
STM32开发,VScode+Embedded IDE,简单方便,没有keil版权困扰
4
基于Python+大数据的外卖配送分析可视化系统设计与实现
5
卸载pyqt5的方法
6
termux文件导入导出_termux文件夹在手机哪里
7
前端使用blob下载文件_讲述前端利用blob完成文档下载
8
C/C++编程:std::thread 详解
9
生命在于学习——密码暴力破解_密码穷举工具
10
【Numpy】P1 概述与安装
当前位置:
article
> 正文
理解进程和线程_j进程,线程,任务理解
作者:羊村懒王 | 2024-02-27 08:25:09
赞
踩
j进程,线程,任务理解
我理解为
假如进程是一段代码(由a、b、c组成)
线程是一段控制流,cpu真正允许的是线程,而且每个时间段只能允许一个
一个进程有多个线程
当线程A执行了a代码后,CPU启动线程B开始执行a代码。然后继续随机执行。。。。
这就是多线程,但是多线程究竟比单线程好在哪里呢?我还没有理解。。。
线程是
程序
中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为
多线程
.
要弄清楚线程,须结合进程加以理解:
进程是一个可执行的
程序
,由私有虚拟地址空间、
代码
、数据和其他操作
系统资源
(如进程创建的文件、管道、同步
对象
等)组成。一个
应用程序
可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主
线程。
线程是
操作系统
分时调度分配CPU时间的
基本实体
。一个
线程
可以执行
程序
的任意部分的
代码
,即使这部分代码被另一个线程并发地执行;一个进程的
所有线程共享它的虚拟地址空间、
全局变量
和操作
系统资源
。
之所以有
线程
这个概念,是因为以线程而不是进程为调度
对象
效率更高:
由于创建新进程必须加载
代码
,而线程要执行的代码已经被映射到进程的
地址空间
,所以创建、执行线程的速度比进程更快。
一个进程的所有线程共享进程的
地址空间
和
全局变量
,所以简化了线程之间
的通讯。
编辑本段
详细介绍
线程
是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个
父进程
。
线程
不拥有
系统资源
,只有运行必须的一些
数据结构
;它与
父进程
的其它线程共享该进程所拥有的全部资源。
线程
可以创建和撤消线程,从而实现
程序
的并发执行。一般,
线程
具有就绪、阻塞和运行三种基本状态。在多中央
处理器
的系统里,不同
线程
可以同时在不同的中央处理器上运行,甚至当它们属于同一个进程时也是如此。大多数支持多
处理器
的
操作系统
都提供
编程接口
来让进程可以控制自己的
线程
与各处理器之间的关联度(affinity)。
有时候,线程也称作
轻量级进程
。就象进程一样,线程在
程序
中是独立的、并发的执行路径,每个线程有它自己的
堆栈
、自己的
程序计数器
和自己的
局部变量
。但是,与分隔的进程相比,进程中的线程之间的隔离程度要小。它们共享
内存
、
文件句柄
和其它每个进程应有的状态。
进程可以支持多个
线程
,它们看似同时执行,但互相之间并不同步。一个进程中的多个线程共享相同的内存地址空间,这就意味着它们可以访问相同的
变量
和
对象
,而且它们从同一堆中分配对象。尽管这让线程之间共享信息变得更容易,但您必须小心,确保它们不会妨碍同一进程里的其它线程。
Java 线程工具和 API 看似简单。但是,编写有效使用
线程
的复杂
程序
并不十分容易。因为有多个线程共存在相同的
内存
空间中并共享相同的
变量
,所以您必须小心,确保您的线程不会互相干扰。
编辑本段
线程的概念
一般来说,我们把正在计算机中执行的程序叫做"进程"(Process),而不将其称为程序(Program)。所谓"线程"(Thread),是"进程"中某个单一顺序的
控制流
。新兴的
操作系统
,如Mac,Windows NT,Windows 95等,大多采用
多线程
的概念,把线程视为基本执行单位。线程也是Java中的相当重要的组成部分之一。
甚至最简单的Applet也是由多个线程来完成的。在Java中,任何一个Applet的paint()和update()方法都是由AWT(Abstract Window Toolkit)绘图与事件处理线程调用的,而Applet 主要的里程碑方法——init(),start(),stop()和destory() ——是由执行该Applet的应用调用的。
单线程
的概念没有什么新的地方,真正有趣的是在一个
程序
中同时使用多个线程来完成不同的任务。某些地方用轻量进程(Lightweig ht Process)来代替线程,线程与真正进程的相似性在于它们都是单一顺序控制流。然而线程被认为轻量是由于它运行于整个
程序
的上下文内,能使用整个程序共有的资源和程序环境。
作为单一顺序
控制流
,在运行的
程序
内线程必须拥有一些资源作为必要的开销。例如,必须有执行
堆栈
和
程序计数器
。在
线程
内执行的
代码
只在它的上下文中起作用,因此某些地方用"执行上下文"来代替"线程"。
本文内容由网友自发贡献,转载请注明出处:
https://www.wpsshop.cn/w/羊村懒王/article/detail/151400
推荐阅读
article
yolov8
学习笔记(三)
添加
注意力
机制
+
源码
简单
了解
...
因为我没有学过pytorch,所以看
源码
也是一头雾水,不过大概看懂的是yolo是对pytorch的再次封装,封装得很好,...
赞
踩
article
python
多
线程
编程,获取各个
线程
返回值
及相关问题_multi
process
ing.
process
...
针对使用multi
process
ing.Process() 的多
线程
机制获取
返回值
的方法:multi
process
ing...
赞
踩
article
基于
Python
爬虫四川
宜宾
美食
商家
数据
可视化
系统设计与实现(
Django
框架)
研究
背景与意义、国...
基于
Python
爬虫四川
宜宾
美食
商家
数据
可视化
系统设计与实现(
Django
框架)
研究
背景与意义、国内外
研究
现,提高他们...
赞
踩
article
技术分享:
IPv6
升级
转换
常见问题
盘点_
ipv6
转
ipv4
时导致流失...
随着
IPv6
网络的普及,
IPv6
环境的问题处理已经成为网站管理员的必修课,但是由于绝大部分网站运维人员对
IPv6
网络的接...
赞
踩
article
通过
DTS
将
RDS
的
数据
实时
同步
至
DataHub
...
准备工作创建一个
数据
库和表,您可以选择使用阿里云的
RDS
数据
库,也可以在本地服务器上自建
数据
库。本案例以华东1区的
RDS
...
赞
踩
article
redisson
Unexpected
exc
eption
while
processing
com...
分布式锁,默认值是等1秒全部slave 同步成功master再继续,如果slave。生产环境一个活动给某个用户发送积分失...
赞
踩
article
UnityUSB
机器码
加密...
/这里CheckUSBStatus这个函数来检查USB的状,这里放在Update里面是因为用户可能会拔掉U盘,或者重新插...
赞
踩
article
如何
下载
android
最新
源码
,如何
下载
android
源码
与
android
内核
源码
...
首先,要分清楚,
android
的源代码和
android
的
内核
代码一般是分开的,要分别进行
下载
。1、先
下载
android
的...
赞
踩
article
360
天擎
sql
注入
&&未授权访问_
360
新
天擎
未授权访问...
天擎
前台SQL
注入
漏洞描述
天擎
存在SQL
注入
,攻击者可以通过漏洞上传木马FOFA指纹title=“
360
新
天擎
”漏洞...
赞
踩
article
基于
AT89C51
单片机
与
DS18B20
的
温度
测量系统...
DALLAS 公司的单总线数字
温度
传感器DSl8B20 以其线路简单、硬件开销少、成本低廉等一系列优点,有着无可比拟的应...
赞
踩
article
pytorch
、
CUDA
、
cuDNN
下载和
环境变量
设置_
cudnn
环境变量
...
pytorch
、
CUDA
、
cuDNN
_
cudnn
环境变量
cudnn
环境变量
本篇文章的目的是能够...
赞
踩
article
J
Graph
T源码
分析
(
一
)
:
Graph
接口
的初步认识...
J
Graph
T源码
分析
第
一
节
:
Graph
接口
的初步认识_jgraphtjgrapht  ...
赞
踩
article
数学
建模【
相关性
模型
】...
相关性
模型
并不是指一个具体的
模型
,而是一类
模型
,这一类
模型
用来判断变量之间是否具有
相关性
。一般来说,分析两个变量之间是否...
赞
踩
article
深度
学习目标
检测
】二十
、
基于
深度
学习的
雾天
行人
车辆
检测
系统-含数据集
、
GUI
和源码(python,y...
雾天
车辆
行人
检测
在多种场景中扮演着至关重要的角色。总的来说,
雾天
车辆
行人
检测
技术在提升道路安全
、
辅助驾驶
、
提高交通效率以...
赞
踩
article
java
项目分享 - 基于
opencv
、dilb的员工
人脸识别
考勤
系统_
java
opencv
人脸识别
...
基于
opencv
、dilb的员工
人脸识别
考勤
系统选题“员工刷脸
考勤
”,要求采用python语言开发,可以通过摄像头添加员...
赞
踩
article
基于
YOLOv8
深度
学习
的
路面
标志
线
检测
与
识别系统
【
python
源码+
Pyqt5
界面+数据集+训练代...
基于
YOLOv8
深度
学习
的
路面
标志
线
检测
与
识别系统
【
python
源码+
Pyqt5
界面+数据集+训练代码】目标
检测
、
深度
学...
赞
踩
article
Advanced
Collision
Detection Techniques_
listing
1....
By Nick Bobic Gamasutra March 30, 2000 URL: http://www.gama...
赞
踩
article
【
Conda
更换
python
版本
】_
conda
切换
python
版本
...
conda
更换
python
版本
_
conda
切换
python
版本
conda
切换
python
版本
...
赞
踩
article
【
深度
学习基础】一文读懂
卷积
神经网络
(
Convolutional
Neural Networks, ...
CNN
从90年代的LeNet开始,21世纪初沉寂了10年。直到2012年Geoffrey和他学生Alex在ImageNe...
赞
踩
article
两小时快速入门
TypeScript
基础
(一)工作流、基本
类型
、
高级
类型
_
typescript
。基...
本文介绍了
TypeScript
的工作流、基本
类型
和
高级
类型
,并对一些
类型
做了举例说明,最后对本文章进行了总结..._ty...
赞
踩
相关标签
YOLO
学习
笔记
python
开发语言
爬虫
宜宾美食商家数据可视化
服务器
网络
ssl
数据库
memcached
大数据
java
redis
分布式
unity
c#
如何下载android最新源码
安全漏洞
渗透测试
单片机
嵌入式硬件
数据结构
图论