条件变量(Condition Variable) CV有两个问题值得讨论: 为什么有了mutex,仍需要cond cond为什么一定要配合mutex使用 为什么有了mutex,仍需要cond mutex与cond的适用场景并不同,mutex是控制shared resource在任一时刻只能由一个线程 ...
分类:
系统相关 时间:
2020-05-16 00:17:07
阅读次数:
95
/* * Copyright(C) 2020 Burgess Fan aLL rights reserved. * * 文件名称:mutex.c * 创 建 者:Burgess * 创建日期:2020年05月10日 */ #include <stdio.h> #include <unistd.h> ...
分类:
编程语言 时间:
2020-05-10 13:11:34
阅读次数:
85
Reentrant mutex In computer science, the reentrant mutex (recursive mutex, recursive lock) is a particular type of mutual exclusion (mutex) device tha ...
分类:
其他好文 时间:
2020-05-07 13:11:49
阅读次数:
71
补充一个多线程场景下常使用的工具-Queue。 第一步:__init__() 1 class Queue: 2 3 def __init__(self, maxsize=0): 4 self.maxsize = maxsize 5 self._init(maxsize) 6 7 # mutex mu ...
分类:
其他好文 时间:
2020-04-30 21:23:06
阅读次数:
56
一、自旋锁与互斥锁 java中的锁整体分为两大类,基于synchronized关键字的互斥锁和基于CAS操作的自旋锁 synchronized:串行执行阻塞的、用户态内存态切换的重量级锁。(监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的) CAS:非阻塞的自旋、线程上下文切换 异 ...
分类:
编程语言 时间:
2020-04-30 19:29:42
阅读次数:
101
不同步的情况 互斥量(mutex) Lock 通过Lock实现多线程同步 使用 和`mutex.release with`来替代。 Lock是不允许递归的,一个线程多次申请,将出现死锁。 RLock(递归锁) Lock\RLock这两种琐的主要区别是: RLock允许在同一线程中被多次acquire ...
分类:
编程语言 时间:
2020-04-27 22:14:38
阅读次数:
64
之前遇到一个耗电问题,最后发现是/proc/sys/kernel/sched_boost节点设置异常,一直处于boost状态。导致所有场景功耗上升。 现在总结一下sched_boost的相关知识。 Sched_Boost sched_boost主要是通过影响Task placement的方式,来进行 ...
分类:
其他好文 时间:
2020-04-27 15:03:11
阅读次数:
89
基于信号量的进程同步与互斥(1) 本人水平有限,若有错误,欢迎读者及时指出,万分感谢! 1. P/V操作 ? P/V操作由 P操作原语 和 V操作原语 组成,其意义是在一个整型变量S上定义了两个操作,该操作变量被称之为 信号量S ,只能由P操作和V操作进行修改。S必须置一次且只能置一次初值, S = ...
分类:
系统相关 时间:
2020-04-26 13:55:41
阅读次数:
95
* 操作系统的发展史 ```python """ 其实主要就是围绕cpu的利用率问题 """ ``` * 多道技术 ```python """ 单核实现并发的效果 并发:看起来像同时运行的就可以叫做并发 并行:真正意义上的同时运行 ps:明显出轨 >>>: 星轨 空间与时间上的复用 空间上 多个程序 ...
分类:
系统相关 时间:
2020-04-23 23:04:50
阅读次数:
90
```C++ #include #include #include #include #include using namespace std; pthread_cond_t qready = PTHREAD_COND_INITIALIZER; pthread_mutex_t qlock = PTH... ...
分类:
编程语言 时间:
2020-04-20 01:11:13
阅读次数:
72