当前位置:网站首页>1.线程简介
1.线程简介
2022-08-09 09:23:00 【过来我的小熊】
程序,线程,进程
概述
**程序:**程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念
**进程(Process):**进程是执行程序的一次执行过程,是一个动态的概念。是系统资源分配的单位
**线程(Thread):**线程就是独立的执行路径,是CPU调度和执行的单位
注意:
- 通常一个进程是可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存下的意义。
- 很多多线程都是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器
- 如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错觉
总结
- 线程就是独立的执行路径
- 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程
- main()称为主线程,位系统的入口,用于执行整个程序
- 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统机密相关的,先后顺序是不能人为的干预的
- 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制
- 线程会带来额外的开销,如cpu调度时间,并发控制开销
- 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致
边栏推荐
猜你喜欢
随机推荐
第三方免费开放API 获取用户IP 并查询其地理位置
谷歌地图时代结束,怎么看高清卫星影像地图?
unix环境编程学习-多线程
第四讲 SVN
MySQL锁
本体开发日记05-努力理解SWRL(中)
on duplicate key update
黑盒测试常见错误类型说明及解决方法有哪些?
Flutter的基础知识之Dart语法
列表
接口测试的基础流程和用例设计方法你知道吗?
Redis Basics
Lecture 4 SVN
Redis high availability
web测试之功能测试常用的方法有哪几种?有什么要点要注意?
MySQL查漏补缺(四)存储过程和游标
Domestic with Google earth software, see the download 19th level high-resolution satellite images so easy!
TypeScript Brief (1)
全球19级谷歌卫星地图免费查看下载
接口测试的概念、目的、流程、测试方法有哪些?