不同步的情况 互斥量(mutex) Lock 通过Lock实现多线程同步 使用 和`mutex.release with`来替代。 Lock是不允许递归的,一个线程多次申请,将出现死锁。 RLock(递归锁) Lock\RLock这两种琐的主要区别是: RLock允许在同一线程中被多次acquire ...
分类:
编程语言 时间:
2020-04-27 22:14:38
阅读次数:
64
金属Rust:原子操作 对于复杂的操作来说,使用互斥量(Mutex)来避免竞态条件相当省力。但是对于一些比较小规模的操作,比如让一个计数器+1之类,会考虑更方便的原子对象。 原子类型在标准库中的 模块下。原子类型和平时使用的基础类型(primitive type)很像,唯一的区别是原子类型的操作能够 ...
分类:
其他好文 时间:
2020-03-29 12:34:28
阅读次数:
125
一. 什么是互斥锁 计算机中,当多个进程或者线程共享一个临界区(例如:共享内存空间或者全局变量),如果仅对该临界区读取,不进行内容修改,即使同时多次读取都是没有问题的。 但是,当我们需要修改临界区内的内容时,我们就必须面对一个情况:同时有多个操作对临界区的内容进行修改,在操作完后,保留的是那一次操作 ...
分类:
其他好文 时间:
2020-03-11 01:33:45
阅读次数:
56
什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。UDP(User Data Protocol,用户数据报协议)是与TCP相对应 ...
分类:
其他好文 时间:
2020-02-17 23:45:35
阅读次数:
64
//创建互斥量 HANDLE g_hMutex = NULL; WaitForSingleObject(g_hMutex, INFINITE); ReleaseMutex(g_hMutex); ...
分类:
编程语言 时间:
2020-02-17 16:09:37
阅读次数:
68
1.并发 2.基础 3.访问共享资源 4.终结任务 5.线程协作 6.错失信号 7.死锁 8.其他工具 以上来自《think in java》 ...
分类:
编程语言 时间:
2020-01-14 10:08:44
阅读次数:
82
mysql的锁分为 Lock 和 Latch . Latch 一般称为 闩锁 ,因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差,在 In弄DB引擎中,Latch又可以分为mutex(互斥量)和 rwlock(读写锁)。其目的是用来保证并发线程操作临界资源的正确性,并且通常没有死 ...
分类:
数据库 时间:
2020-01-05 00:43:44
阅读次数:
222
1. 同步概念 2. 线程同步 3. 进程同步4. 生产者消费者模型5. 哲学家问题 ...
分类:
编程语言 时间:
2019-12-29 23:45:04
阅读次数:
116
一般来说并发通信有两种策略:共享数据(内存)和消息传递。 共享数据(内存)适用的场景: 1、速度要求高 2、一个写进程,多个读进程 3、共享内存更适合单机多核的并发编程 共享数据的问题: 1、需要解决条件竞争和线程/进程同步问题(线程锁,互斥量,信号量) 2、大量的上下文切换 基于共享内存的并发模型 ...
分类:
编程语言 时间:
2019-12-29 12:44:40
阅读次数:
77
静态链接库和动态链接库的区别 一个进程可以通过调用waitpid函数来等待它的子进程终止或者停止 Debug和Release的区别 临界区互斥量信号量事件进程互斥与同步 进程有哪几种状态,状态转换图,及导致转换的事件 进程由运行态进入就绪态和阻塞态的原因 进程切换 进程调度算法 死锁 哲学家就餐问题 ...
分类:
编程语言 时间:
2019-12-24 09:46:17
阅读次数:
111