当前位置:网站首页>1.线程简介
1.线程简介
2022-08-09 09:23:00 【过来我的小熊】
程序,线程,进程
概述
**程序:**程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念
**进程(Process):**进程是执行程序的一次执行过程,是一个动态的概念。是系统资源分配的单位
**线程(Thread):**线程就是独立的执行路径,是CPU调度和执行的单位
注意:
- 通常一个进程是可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存下的意义。
- 很多多线程都是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器
- 如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错觉
总结
- 线程就是独立的执行路径
- 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程
- main()称为主线程,位系统的入口,用于执行整个程序
- 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统机密相关的,先后顺序是不能人为的干预的
- 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制
- 线程会带来额外的开销,如cpu调度时间,并发控制开销
- 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致
边栏推荐
猜你喜欢
本体开发日记05-努力理解SWRL(下)
seata处理分布式事务
MySQL索引
These 12 GIS software are better than the other
Web请求原理
本体开发日记03-排错进行时
Do you know the basic process and use case design method of interface testing?
本体开发日记01-Jena配置环境变量
The era of Google Maps is over, how to view high-definition satellite image maps?
通用的测试用例编写大全(登录测试/web测试等)
随机推荐
真·鸡汤文
The era of Google Maps is over, how to view high-definition satellite image maps?
有返回值的函数
MySQL索引
Do you know the principles of test cases and how to write defect reports?
Sweet alert
map去重代码实现
Another implementation of lateral view explode
Environment build onnxruntime 】
米斗APP逆向分析
Lecture 4 SVN
MySQL event_single event_timed loop event
【面试体系知识点总结】---JVM
学习双向链表的心得与总结
on duplicate key update
国产谷歌地球,地形分析秒杀同款地图软件
软件测试面试常见问题及答案(发散思维、接口、性能、概念、)
Understanding of PID control motor output as motor PWM duty cycle input
Global 19 Google Satellite Map Free View Download
MySQL Leak Check (4) Stored Procedures and Cursors