总结:互斥锁允许每个线程轮流操作共享资源。 可分为快速锁定、递归互斥锁定、错误检查和互斥锁定信号量。 信号量也是操作系统中使用的原语。 它广泛用于进程或线程之间的同步和互斥。 它本质上是一个非负整数计数器并充当信号量。 如果大于或等于该值,则该线程可以访问公共资源。
日期变更记录2021-9-29 什么是线程?
线程是共享内存空间中的同时多通道执行路径。 他们共享流程的资源。 进程是系统中程序执行和资源分配的基本单位。 线程是进程内的基本调度单元,也称为轻量级进程。
线程的分类 1. 用户级线程 2. 核心级线程 基本线程操作
线程共享资源和地址空间,因此在对这些资源进行操作时,必须考虑线程间资源访问的唯一性。 。 本节介绍 POSIX 中线程同步的方法,主要涉及互斥锁和信号量。
互斥锁
互斥锁只有两种状态:锁定和解锁。 互斥锁允许不同的线程按顺序操作共享资源。 它们可以分为快速锁、递归互斥锁和错误检测互斥锁。
信号量
信号量也是操作系统中使用的 PV 原语。 广泛用于进程或线程之间的同步。 互斥本质上是一个非负整数计数器。 如果信号量sem的值大于等于0,则该线程可以访问公共资源。 互斥和同步的区别在于,互斥使用相同的信号量,同步则相反。
线程创建示例 #include #include #include void *pthread_2(void *param){ int i; // pthread_cancel(*(pthread_t *)param); // 如果取消第 1 个线程,pthread_1 将不会运行。 不。 函数 (i = 0; i
评论前必须登录!
注册