- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 读写信号量
当出现多个读者,单个写者的情况时,单纯地使用互斥信号量将极大地减弱多线程操作系统的处理性能。为了满足这种高并发的处理速度问题,SylixOS 引入了读写信号量,它的应用场景类似于 POSIX 读写锁。 SylixOS 读写信号量满足写优先的原则,也就是说,如果已经存在写信号量,则不能再申请读信号量,直到写信号量被释放。但是当已经存在读信号量时,可以再次请求读信号量。这种机制满足了读的高并发性。 1、Creat一个 SylixOS 读写信号量必须要调用 Lw_SemaphoreRW_Crea.
2020-10-27 09:37:19 477
原创 互斥信号量
互斥信号量用于共享资源需要互斥访问的场合,可以理解为初始值为 TRUE 的带优先级天花板和优先级继承机制(意在解决优先级反转问题)的二进制信号量,只有拥有互斥信号量的线程才有权释放互斥信号量。...
2020-10-26 21:01:00 1208
原创 信号量和条件变量 对比
信号量:多个线程在读写某个共享数据(全局变量等)时必须通过某种方法实现共享数据的互斥访问或者同步访问(例如线程 B 等待线程 A 的结果以继续运行)。其中,信号量是一种最常见的方法。信号量是一种约定机制:在共享资源的互斥访问中,它约定当一个线程获得信号量(Wait)后,其他线程不可以再次获得该信号量直到信号量被释放(Give);在同步机制中,它约定等待信号量(Take)的线程(或者说等待信号更确切)在收到信号量之前应该处于阻塞状态,直到其他线程发送该信号量(Post)。通常情况...
2020-10-14 19:39:29 1050
原创 自旋锁和互斥锁
自旋锁属于互斥锁的一种,都是为了解决某项资源的互斥使用。理解:线程A正在占用CPU使用时,线程B也想要占用CPU,但此时A已经加了使用标志(锁),那么B就可以有不同的操作 一、占用。不断循环并测试锁的状态,线程不会挂起(睡眠),处于忙等状态,采用这种行为的锁叫做自旋锁。 二、等待。线程B休眠阻塞,放弃CPU,直到A执行完了,锁没了,再使用内存。这种行为叫做互斥锁。 互斥锁:用于保护临界区,确保同一时间只有一个线程访问数据。对共享资源的访问,先对互斥量进行加锁,如果互斥量已经上
2020-10-10 20:05:06 694 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人