信号量与简单互斥锁的实现信号量:与管道和消息队列不同,信号量可以说是一个计数器,它用来控制多进程对临界资源的访问,它作的是PV操作,P为减一操作,它是用来获取临界资源的使用权,如果减一之后大于零则可以访问,不然就挂起等待,V为加一操作,当进程对他的访问结束后便..
分类:
系统相关 时间:
2016-04-14 22:40:14
阅读次数:
322
信号量互斥 信号量(又名:信号灯)与其他进程间通信方式不大相同,主要用途是保护临界资源(进程互斥)。进程可以根据它判定是否能够访问某些共享资源。除了用于访问控制外,还可用于进程同步。 一、信号量分类 二值信号灯:信号灯的值只能取0或1 计数信号灯:信号灯的值可以取任意非负值。 二、函数学习 2.1创
分类:
其他好文 时间:
2016-03-21 18:25:43
阅读次数:
185
mysql中的latch锁和Tlock(事务锁),DML加锁规则,以及死锁分析。一.Latch和Tlock的关系Latch:为保护临界资源的正确性而设计,例如保护正在使用的内存页面不被破坏等。没有死锁检测机制,轻量锁,并且作用对象时内存页面或是内存共享变量.Tlock:事务锁,作用对象是事务,有死锁检测机..
分类:
数据库 时间:
2016-03-09 19:22:31
阅读次数:
452
刚做完消息服务器的项目,项目是用c++开发的,没有引入现在c++的特性向智能指针,bind/function等。当时在开发的时候对其中一个bug印象比较深,bug原因是在session对象释放后,在其他地方继续的被使用。 对于临界资源加锁处理。对于多个线程共享的对象通过使 1. 有过多线程编程经验的
分类:
编程语言 时间:
2016-02-01 18:35:30
阅读次数:
124
一、分布式协调技术在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说这个简单,写一个调...
分类:
其他好文 时间:
2015-12-12 18:48:37
阅读次数:
268
临界资源与临界区临界资源(critical resource):一次只能供一个进程使用的资源。 如:硬件有打印机等,软件有变量,磁盘文件(写入的时候)。临界区(critical section):把进程中访问临界资源的那段代码成为临界区。为了实现临界资源的互斥访问,只要做到进程互斥地进去自己的临界....
分类:
系统相关 时间:
2015-11-22 23:17:38
阅读次数:
476
对于并发编程,大家想到总是多线程之间对等的临界资源竞争。然而经常会遇到下面这样的场景: 守护线程提供一个临界资源,多个子线程会并发改写该临界资源。大部分时候(99.9%的时间),主线程是不会干涉各个线程之间的竞争的,通常只要该临界资源自己内部处理好同步即可。但是偶尔主线程也会干预一下该临界资源,比如...
分类:
其他好文 时间:
2015-11-13 18:59:52
阅读次数:
334
信号灯概述什么是信号灯信号灯用来实现同步,用于多线程,多进程之间同步共享资源(临界资源)。PV原语:信号灯使用PV原语P原语操作的动作是:u sem减1。u sem减1后仍大于或等于零,则进程继续执行。u 若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。V原语操作的...
分类:
系统相关 时间:
2015-10-22 19:06:16
阅读次数:
326
首先,先来看几个概念:同步:协作的过程,比如,多人开发合作。相互排斥:争抢资源的过程。比如苦逼的大学选课;临界区:进程中对临界资源实施操作的那段程序;临界资源:一次仅仅能一个进程使用的资源,比如打印机;信号量:表示资源数量;相对于各个进程来说的;P操作(-1):申请资源;V操作(+1):释放资源; ...
分类:
其他好文 时间:
2015-10-04 08:51:19
阅读次数:
224
什么是单例模式?我所理解的单例模式:整个程序中只允许有唯一的一个对象(这个类只能实例化一次)看看我找到的解释:当一个类只能有一个对象时,往往会用到单例模式,例如,现实生活中有很多临界资源,像打印机、处理器(单核)、皇帝、太子等等,它们都是稀有资源,只能有一个实例对象。单例模式有哪些方式实现?第一种最...
分类:
其他好文 时间:
2015-09-15 12:23:44
阅读次数:
137