Windows多线程编程 [1] 基本概念

本文详细解析了进程和线程的概念及其状态变化,介绍了线程同步机制及内核对象的作用,并探讨了线程调度的方式与优先级调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序:一个静态的指令序列。

进程:为执行程序指令的线程而保留的一系列系统资源的集合。

线程:操作系统调度执行的最小单元。

 

 

1、进程

    应用程序的一个运行实例。管理着一组可用的系统资源,如内存空间,CPU运行时间等。

 

    进程可以处理以下三种状态之一:

        运行:正在使用CPU。

        就绪:当前能够运行,但由于CPU正在执行其它进程,所以需要等待。

        阻塞:由于不能得到所需资源等原因而不能运行,需要等外部事件发生。

 

    进行的基本构成:

        一个可执行的指令集合。

        一个私有的虚拟地址空间。

        系统资源,包含信号量、通信端口、文件等。

        至少一个执行线程。

        进程ID。

 

2、线程

    操作系统分配系统资源的最小执行单元。

 

    线程的基本构成:

        表示处理器状态的寄存器。

        两个堆栈,一个在线程处理核心模式时使用,另一个在线程处于用户模式时使用。

        一个由子系统、运行时库和动态链接库使用的私有存储区。

        一个线程ID。

 

3、线程同步

    保证多个线程的操作之间的协调、有序。线程通过休眠机制实现同步。

 

4、内核对象

    由系统内核创建和管理的对象。应用程序只能通过API函数来操作这些对象。

    用于实现线程同步的内核对象有:临界段、互斥量、事件、信号量。

 

5、对象与句柄

    对象:预先定义的静态类型的一个运行态实例。

    句柄:标识对象的一个值。

 

6、安全属性

    描述内核对象由谁创建,可以被谁访问。在创建内核对象晨,由一个SECURITY_ATTRIBUTES结构体类型的变量指定。

 

7、线程调度方式

    轮循式,抢占式。 Windows操作系统采用的是抢占式线程调度方案。

    Windows操作系统下,线程优先级分为32级(用0-31表示,0最低,31最高)。抢占式调度方案下,优先保证所有高优先级线程全部执行完毕。也就是说只有系统中的所有31优先级的线程全部执行结束,30优先级的线程才有可能被执行。

    操作系统会动态调整线程优先级。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值