首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多线程编程,支持操作系统、CPU?

多线程编程,支持操作系统、CPU?
EN

Stack Overflow用户
提问于 2017-09-06 00:38:16
回答 2查看 187关注 0票数 0

我正在尝试理解多线程的概念。多线程的支持来自于:

1)从操作系统?(或)

2)语言本身?(如果我是正确的,就像Java )

CPU的作用是什么,多线程能力是否也归功于CPU (不考虑多核处理器)?

有没有可能出现这样的情况:操作系统或CPU不支持多线程,但语言本身仍然可以支持多线程?

有人能帮我理解这个吗?

EN

回答 2

Stack Overflow用户

发布于 2017-09-06 00:45:30

线程是可由调度器独立于其它此类序列来管理的指令序列。

通常,调度程序是操作系统的一部分(例如,Linux's Completely Fair Scheduler)。

在某些方法中(例如,green threadsstackless Python),调度器是语言或运行时环境的一部分。

在现代计算环境中,线程的数量通常会超过CPU核心的数量。这通常是通过时间切片来处理的,当线程轮流在可用的硬件上运行时。这是调度器的工作来管理它。

票数 1
EN

Stack Overflow用户

发布于 2017-09-06 00:49:24

Understanding java's native threads and the jvm有一些信息。

基本上,在Java中,多线程支持来自操作系统和Java。例如,Python就不会发生这种情况(标准的CPython只对Linux线程进行了包装)。

https://superuser.com/questions/740611/what-is-the-difference-between-multithreading-and-hyperthreading详细描述了CPU为了多线程所做的事情。

从理论上讲,是的,语言可以是线程的实现者。取决于你如何看待它,C不依赖于操作系统,它做自己的线程(主要是因为操作系统是用C编写的)。上面的链接也说明了这一点。

执行自己的线程的语言可能没有操作系统级别的线程那么有效,因此操作系统线程是首选的,而且通常是存在的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46059702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档