如题,多线程是由其所在进程控制的,还是说内核控制的?TCB,PCB什么的。
解决方案
7
线程既不是TCB,也不是PCB
TCB是task
PCB是process
而线程是thread
一个process有多个thread
线程是内核对象。
由内核控制时间片执行。
TCB是task
PCB是process
而线程是thread
一个process有多个thread
线程是内核对象。
由内核控制时间片执行。
7
自然是操作系统调度的 有内置的调度算法 微软没有公开
7
操作系统的调度器吧。
7
操作系统
进程加载的时候,会启动一个线程执行进程(的主线程)
这个主线程,也就是进程的非自主创建线程,是进程开始就执行的线程。
MS NT以后,每个UI进程。有两个守护线程。用来响应UI, 也不是自主创建的。
。
其它线程,都是程序自主创建的。进程可以对它们做更多的设定。
然而线程管理者是操作系统。
系统管理线程的创建,调度,切换,退出,或直接被杀死,,,,
(WIndows提供了一些手段,你可以交换两个线程的上下文,让他们互换各自的任务)
—
话说,linux,unix 从前线程是一种轻量级进程,不是原生线程
如今不知道还是不是
Windows 的线程是原生线程,是系统调度的基本单元,
Windows 代码实际上依赖线程来运行。
进程的每一条执行路径,是一个线程。
进程加载的时候,会启动一个线程执行进程(的主线程)
这个主线程,也就是进程的非自主创建线程,是进程开始就执行的线程。
MS NT以后,每个UI进程。有两个守护线程。用来响应UI, 也不是自主创建的。
。
其它线程,都是程序自主创建的。进程可以对它们做更多的设定。
然而线程管理者是操作系统。
系统管理线程的创建,调度,切换,退出,或直接被杀死,,,,
(WIndows提供了一些手段,你可以交换两个线程的上下文,让他们互换各自的任务)
—
话说,linux,unix 从前线程是一种轻量级进程,不是原生线程
如今不知道还是不是
Windows 的线程是原生线程,是系统调度的基本单元,
Windows 代码实际上依赖线程来运行。
进程的每一条执行路径,是一个线程。
10
线程只是由进程创建,但调度这些仍然是操作系统进行管理
4
而PCB、TCB只是存放描述进程/线程信息的一种数据结构
5
搜“毛德操 线程调度”
或
参考Linux源代码中线程调度相关源代码片断。
或
参考Linux源代码中线程调度相关源代码片断。