线程续

来源:互联网 发布:知乎注册必须手机号 编辑:程序博客网 时间:2024/04/29 09:39

在多线程的进程中, 线程是调度和执行的的单元。 不同的操作系统, 有不同

的线程调度模式。 各种不同的模式的主要不同是:在竞争系统资源(特别是

cpu时间)时, 线程所处的竞争范围不同。


1. 进程竞争范围: 各个线程在同一进程内竞争“被调度的cpu时间”(但不直

接和其他进程中的线程竞争)。

2 系统竞争范围: 线程直接和"系统范围" 内的其他线程, 无论它们和什么进

程关联。

下面简单介绍一下windows 平台线程调度模式。

windows 平台线程的调度模式是系统范围竞争。称之为核心线程(kernel-

threading) 模型。

在核心线程模型下, 应用程序的每个线程都由一个核心线程直接管理。 所有线程多工作在 “系统竞争范围”。

较之”进程竞争范围“ 的模式(无论有多少CPU, 一个进程只会被调度掉一个cpu上, 由进程内的所有线程瓜分), 在 ”核心线程“ 的管理下, 一个进程的线程可以分享多个cpu. 当然这样线程的的生命周期操作更昂贵些。

所以在windows 平台下, 多线程的程序, 可以瓜分更多的系统资源, 特别是cpu时间。

但是程序的开发中, 无度的使用多线程, 未必是好事。 毕竟你剥夺的别的进程的cpu时间, 因此尽量权衡利弊。

原创粉丝点击