线程锁笔记
来源:互联网 发布:主机屋数据库地址 编辑:程序博客网 时间:2024/06/05 07:08
前言:
使用多线程时,必须学会对临界区加锁。所谓临界区是一种轻量级的机制,在某一时间内只允许一个线程执行特定的代码段。这样的话,在使用多线程的时候,必须提出一种保护机制来控制临界区的访问,这种保护机制就是锁。
C++对临界区加锁方法:
CRITICAL_SECTION g_cs; //临界区声明
InitializeCriticalSection(&g_cs); //初始化锁
EnterCriticalSection(&g_cs);//进入临界区域
{
临界区访问代码段;
.......
}
LeaveCriticalSection(&g_cs);//离开临界区
DeleteCriticalSection(&g_cs); //删除临界区
其它知识:
线程进入临界区的调度原则是什么?
①如果有若干线程要求进入空闲的临界区,一次仅允许一个线程进入。
②任何时候,处于临界区内的线程不可多于一个。如已有线程进入自己的临界区,则其它所有试图进入临界区的线程必须等待。
③进入临界区的线程要在有限时间内退出,以便其它线程能及时进入自己的临界区。
④如果线程不能进入自己的临界区,则应让出CPU,避免线程出现“忙等”现象。
如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。
0 0
- 线程锁笔记
- 线程锁笔记
- Python笔记----线程锁
- Python学习笔记--线程锁
- 线程笔记
- 线程笔记
- 线程,笔记
- 线程笔记
- 线程笔记
- 线程笔记
- 线程笔记
- 线程笔记
- 线程笔记
- 笔记-线程
- 线程笔记
- 线程笔记
- 线程笔记
- Java笔记--线程安全与锁优化
- JAVA eclipse导入项目的方法
- 基于contiki系统的MCU使用经验总结
- Snort问题解决记录
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- block为什么要用Copy修饰
- 线程锁笔记
- Apriori算法实现
- 正则表达式的JS验证
- 《深入理解计算机系统》阅读笔记二
- UVA - 12545 Bits Equalizer (贪心)
- 360杀软检测机制猜想
- mysql-5.7.14-winx64.zip 非安装版的详细安装方式
- 前端在线编程笔试记录——蛇形数字
- 如何树立威信?