当前位置:网站首页>多线程是同时执行多个线程的吗
多线程是同时执行多个线程的吗
2022-08-09 22:09:00 【余生大大】
相信多线程各位大佬都用过,不管是在单核cpu还是多核cpu上都可以执行,但是多线程是同时执行多个线程的吗?
并发和并行:
并发:
解释1:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。
解释2:对于单核cpu来说,多线程并不是同时进行的,操作系统将时间分成了多个时间片,大概均匀的分配给线程,到达某个线程的时间段,该线程运行,其余时间待命,这样从微观上看,一个线程是走走停停的,宏观感官上,在某一时刻似乎所有线程都在运行。并发是针对时间片段来说的,在某个时间段内多个线程处于runnable到running之间,但每个时刻只有一个线程在running,这叫做并发。(系统不断地在各个线程之间来回的切换,因为系统切换的速度非常的快,所以给我们在同时运行的错觉)
并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
区别:并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。
结论:
单核cpu是系统将时间分割成时间段交由不同的线程执行,所以实际单核cpu同一时间是只存在一个线程的。
多核cpu可以理解为多个单核cpu,一个cpu执行一个线程,其他cpu也可以执行其他线程,所以多核cpu是可以同时执行多个线程。
边栏推荐
- HUAWEI CLOUD escorts the whole process of "Wandering Ark" for the first time, creating a popular brand
- Common commands and technical function modules of Metasploit
- 继承关系下构造方法的访问特点
- 华为鸿蒙3.0的野望:技术、应用、生态
- JS--popstate事件--使用/教程/实例
- leetcode:321. 拼接最大数
- 异常处理(try,catch,finally)
- Vmware中安装win7虚拟机以及相关简单知识
- 迁移学习 & 凯明初始化
- 【微信小程序开发(八)】音频背景音乐播放问题汇总
猜你喜欢
随机推荐
The 2022-8-9 sixth group of input and output streams
C. Binary String Reconstruction
torch.distributed多卡/多GPU/分布式DPP(二)——torch.distributed.all_reduce(reduce_mean)&barrier&控制进程执行顺序&随机数种子
Basic operations of xlrd and xlsxwriter
What are the basic steps to develop a quantitative trading strategy?
shell数组
Qt message mechanism and events
R语言将列表数据转化为向量数据(使用unlist函数将列表数据转化为向量数据)
ElasticSearcch集群
Janus官方DEMO介绍
YGG 经理人杯总决赛已圆满结束,来看看这份文字版总结!
MySQL——JDBC
What kind of mentality do you need to have when using the stock quantitative trading interface
PyQt5: Getting Started Tutorial
OSS文件上传
【Burning】It's time to show your true strength!Understand the technical highlights of the 2022 Huawei Developer Competition in one article
APS系统能消除造成生产和运输延迟的瓶颈
【AtomicInteger】常规用法
Good future, want to be a second new Oriental
【微信小程序开发(八)】音频背景音乐播放问题汇总