【发布时间】:2019-03-13 15:23:30
【问题描述】:
谁是线程的第一个和主要创建者? 如果一种编程语言不支持线程,我们可以在其上运行多线程吗? 如果操作系统不支持线程,我们可以在其上运行多线程吗?
【问题讨论】:
-
我认为你应该把这个问题缩小到一个特定的实现——你的问题的答案会因一个操作系统而异,所以没有具体的,唯一准确的答案是“它取决于” .
-
例如在 Windows 中答案是什么
-
所有现代版本的 Windows 都支持多线程,所以当一种编程语言的 API 想要创建一个新线程时,它会向下调用一个 Windows API 函数(例如
_beginthreadex())并且该调用处理创建一个通过 Windows 的调度程序创建新线程。 -
@JeremyFriesner 你的意思是
CreateThread或pthread_create -
_beginthreadex()和CreateThread()都是Windows下常用的;pthread_create()不是 Windows API 的一部分(除非微软最近添加了它并且没有告诉我;))
标签: linux windows multithreading