多线程是由谁控制执行的

C++语言 码拜 8年前 (2016-09-22) 1329次浏览
如题,多线程是由其所在进程控制的,还是说内核控制的?TCB,PCB什么的。
解决方案

7

线程既不是TCB,也不是PCB
TCB是task
PCB是process
而线程是thread
一个process有多个thread
线程是内核对象。
由内核控制时间片执行。

7

自然是操作系统调度的 有内置的调度算法 微软没有公开

7

操作系统的调度器吧。

7

操作系统
进程加载的时候,会启动一个线程执行进程(的主线程)
这个主线程,也就是进程的非自主创建线程,是进程开始就执行的线程。
MS NT以后,每个UI进程。有两个守护线程。用来响应UI, 也不是自主创建的。

其它线程,都是程序自主创建的。进程可以对它们做更多的设定。
然而线程管理者是操作系统。
系统管理线程的创建,调度,切换,退出,或直接被杀死,,,,
(WIndows提供了一些手段,你可以交换两个线程的上下文,让他们互换各自的任务)

话说,linux,unix 从前线程是一种轻量级进程,不是原生线程
如今不知道还是不是
Windows 的线程是原生线程,是系统调度的基本单元,
Windows 代码实际上依赖线程来运行。
进程的每一条执行路径,是一个线程。

10

线程只是由进程创建,但调度这些仍然是操作系统进行管理

4

而PCB、TCB只是存放描述进程/线程信息的一种数据结构

5

搜“毛德操 线程调度”

参考Linux源代码中线程调度相关源代码片断。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明多线程是由谁控制执行的
喜欢 (0)
[1034331897@qq.com]
分享 (0)