gpt4 book ai didi

java - 单核和多核上的线程执行

转载 作者:行者123 更新时间:2023-11-29 08:26:35 29 4
gpt4 key购买 nike

这是我在 Oracle 文档中看到的,想确认我的理解 (source):

A computer system normally has many active processes and threads. This is true even in systems that only have a single execution core, and thus only have one thread actually executing at any given moment. Processing time for a single core is shared among processes and threads through an OS feature called time slicing.

这是否意味着在单核机器中,在给定时刻只能执行一个线程?而且,这是否意味着在多核机器上可以在给定时刻执行多个线程?

最佳答案

one thread actually executing at any given moment

想象一下,这是一个游戏,其中 10 个人试图围成一圈坐在 9 把椅子上(我想您可能知道这个游戏)- 没有足够的椅子供每个人使用,但整个团队总是在移动.只是每个人都坐在椅子上一段时间(非常简化的时间切片)。

因此多个进程可以在同一个内核上运行。

但即使您有多个处理器,也不意味着某个线程在其整个生命周期内在该处理器上运行。有一些工具可以实现这一点(即使在 Java 中),它被称为线程亲和性,您可以在其中将线程仅固定到某个处理器(这在某些情况下非常方便)。该线程可以移动(由操作系统安排)以在不同的内核上运行,在运行时,这称为上下文切换,对于某些应用程序,此切换到不同的 CPU有时是不需要的。

当然,多个线程可以同时在不同的内核上并行运行。

关于java - 单核和多核上的线程执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52243640/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com