当前位置:网站首页>1.线程简介
1.线程简介
2022-08-09 09:23:00 【过来我的小熊】
程序,线程,进程
概述
**程序:**程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念
**进程(Process):**进程是执行程序的一次执行过程,是一个动态的概念。是系统资源分配的单位
**线程(Thread):**线程就是独立的执行路径,是CPU调度和执行的单位
注意:
- 通常一个进程是可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存下的意义。
- 很多多线程都是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器
- 如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错觉
总结
- 线程就是独立的执行路径
- 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程
- main()称为主线程,位系统的入口,用于执行整个程序
- 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统机密相关的,先后顺序是不能人为的干预的
- 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制
- 线程会带来额外的开销,如cpu调度时间,并发控制开销
- 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致
边栏推荐
猜你喜欢
随机推荐
Summary of steps and methods for installing and uninstalling test cases that you must read
Another implementation of lateral view explode
单元测试是什么?怎么写?主要测试什么?
软件测试面试思路技巧和方法分享,学到就是赚到
TypeScript Brief (1)
关于链表的几道大厂面试题
LPP代码及其注释
What does the test plan include?What is the purpose and meaning?
.equals ==
[Pytorch] Install mish_cuda
按字节方式和字符方式读取文件_加载配置文件
本体开发日记04-努力理解protege的某个方面
接口开发规范及测试工具的使用
seata处理分布式事务
2048小游戏成品源码
本体开发日记05-努力理解SWRL(中)
米斗APP逆向分析
使用图新地球无法加载谷歌地球的完美解决方法(附软件下载)
jfinal加载配置文件原理
上帝视角看高清村庄卫星地图,附下载高清卫星地图最新方法







