进程和多线程

吃饭睡觉不准打豆豆 2019-06-25 11:40:02
如何理解计算机在一个确定的时间点只有一个进程在执行,如何解释边听歌边玩游戏?

进程中又可以有多个线程,那么在一个给定的时间点线程是不是同时执行的?
...全文
91 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
一笑1874 2019-06-25
  • 打赏
  • 举报
回复
电灯是一直亮的吗,我们用的电是交流电,电灯是明暗变化的为什么我们觉得电灯一直是亮的?还有风扇在转动的时候我们感觉风扇是一个圆盘而不是三个叶片。都是因为我们的反应太慢了。计算机也是一样的,CPU在一个时刻只能做一件事,比如你打开了多个应用,CPU会将时间分片,每个应用只是执行了一个时间片,然后记录上下文切换到其他应用。下次再执行该应用的时候读取上下文(也就是该应用上次结束的位置)再运行一个时间片。如此反复,线程同理,一个应用中的多个线程也是要来回切换的,所以有时候多线程不一定比单线程快,因为多了上下文切换时间。比如redis就是单线程的。
冲上云霄 、 2019-06-25
  • 打赏
  • 举报
回复
引用 5 楼 江南一叶竹筏 的回复:
[quote=引用 3 楼 一只小菜鸟i 的回复:] 不是同时执行的,楼上是搞硬件运维的吗
做Java的,想了解下计算机到底是怎么实现并发执行的[/quote] 我说楼上不是楼主,大兄dei.关于这个问题,你可以从百度上搜一些多线程的帖子看看就理解了,只是cpu切换处理,并不是同时进行的,处理的很快而已
weixin_40290083 2019-06-25
  • 打赏
  • 举报
回复
多线程的问题比较复杂,和CPU硬件有关系,和操作系统也有关系,和编程语言的关系就不太清楚了,我想应当是编译程序的编译方式有所改变。 你可以看看这个文章https://www.cnblogs.com/Snail-1174158844/p/9541425.html
  • 打赏
  • 举报
回复
引用 3 楼 一只小菜鸟i 的回复:
不是同时执行的,楼上是搞硬件运维的吗
做Java的,想了解下计算机到底是怎么实现并发执行的
  • 打赏
  • 举报
回复
引用 2 楼 weixin_40290083 的回复:
应该和CPU的核心数有关,单核情况下在一个最小的时间片内只有一个线程在CPU中运行。 边听音乐边玩游戏的问题是因为你是一个低速设备,另外各外围硬件是有缓存的,CPU可能一个时间片内处理的数据缓存后,硬件可能需要更多的时间来处理数据。
那多核心的cpu是不是可以进行进程并发? 以我的电脑举例:双核四线程。 那么是不是说真正意义上的线程并发执行的其实只有两个? 多个线程并发执行的只有四个?
冲上云霄 、 2019-06-25
  • 打赏
  • 举报
回复
不是同时执行的,楼上是搞硬件运维的吗
weixin_40290083 2019-06-25
  • 打赏
  • 举报
回复
应该和CPU的核心数有关,单核情况下在一个最小的时间片内只有一个线程在CPU中运行。 边听音乐边玩游戏的问题是因为你是一个低速设备,另外各外围硬件是有缓存的,CPU可能一个时间片内处理的数据缓存后,硬件可能需要更多的时间来处理数据。
望舒 2019-06-25
  • 打赏
  • 举报
回复
因为你的耳朵敏感度不高, 声音和 游戏是交替执行的,只是时间非常非常的短,人感觉不出来

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧