读写锁是数据库中很常见的锁,又叫共享-排他锁,S锁和X锁。读写锁在大量读少量写的情况下有很高的效率优势。
读写锁是基于普通的互斥锁构建出来的更复杂的锁,它有两个基本特点:
1. 当任一线程持有读锁或写锁时,不允许其他线程再持有写锁
2. 当任一线程持有写锁时,不允许其他线程再持有读锁
也就是说,写锁是排他的,只要有一个线程持有写锁,就不允许其他线程再上锁。读锁是共享的,可以有多个线...
分类:
其他好文 时间:
2014-11-03 13:08:32
阅读次数:
256
Linux多线程编程#include<pthread.h>基本线程函数intpthread_create(pthread_t*tid,constpthread_attr_t*attr,void*(*func)(void*),void*arg);线程创建成功返回0,出错返回某个非0值,一般为-1tid创建成功的线程通过tid指针返回线程IDattr指定线程的属性func线程的入口函..
分类:
编程语言 时间:
2014-11-03 10:19:51
阅读次数:
256
1、stl由哪些东西组成,stl的容器有哪些,各个容器是如何分配内存的 stl由容器,算法、迭代器、分配空间的分配器、容器适配器 2、怎样让一个类只能在堆上面分配内存; 3、线程同步的方式 互斥对象,时间对象,消息队列, 4、类的静态成员函数有什么用 基于:它跟类的实例无关,只跟类有关,不需要thi...
分类:
其他好文 时间:
2014-11-02 00:34:52
阅读次数:
250
在进行多线程编程的过程中,线程间的同步与互斥是件需要认真考虑的关键点,而生产者与消费者就是线程间同步的典型例子:若干个生产者在生产产品,若干个消费者同时消费这些物品,保证多个生产者和多个消费者能并发或并行(关于并行与并发的区别以及多线程编程的一些基本概念,可以参考这篇博文:多线程初步)执行。解决生产者与消费者的典型方法是设立一个产品缓冲区,然后多个生产者与消费者互斥的访问该缓冲区。...
分类:
其他好文 时间:
2014-11-01 23:20:41
阅读次数:
406
////////////////////////////////////////////////////////////////
HINSTANCEhInsta=::LoadLibrary("language\\XSelf.dll");
if(hInsta!=NULL)AfxSetResourceHandle(hInsta);
/////////////////////////////////////////////////////////////////////////
charpszExeName[32]..
分类:
编程语言 时间:
2014-11-01 06:27:50
阅读次数:
216
微信公众平台分为两种模式:编辑模式与开发模式;
微信公众帐号申请成功后,要想用程序接收处理用户的请求,就必须要在“高级功能”里进行配置,点击“高级功能”。
从微信开发平台开发者中心中可以看到,高级功能包含两种模式:编辑模式和开发模式,并且这两种模式是互斥关系,即两种模式不能同时开启。那两种模式有什么区别呢,作为开发人员到底要开启哪一种呢?
编辑模式:主要针对非编程人员及信息发布类公众帐号使用。开启该模式后,可以方便地通过界面配置“自定义菜单”和“自动回复的消息”。
开发模式:主要针对具备开发能力的人使用。开...
分类:
微信 时间:
2014-10-31 23:43:19
阅读次数:
387
#include
#include
DWORD WINAPI fun1proc(LPVOID lparameter);
DWORD WINAPI fun2proc(LPVOID lparameter);
int index=0;
int tickets=100;
HANDLE hmutex; //定义互斥对象句柄
int main()
{
HANDLE ht1; //...
分类:
其他好文 时间:
2014-10-31 22:13:40
阅读次数:
265
介绍通常在一个多线程环境下,我们需要共享某些数据,但为了避免竞争条件引致数据出现不一致的情况,某些代码段需要变成原子操作去执行。这时,我们便需要利用各种同步机制如互斥(Mutex)去为这些代码段加锁,让某一线程可以独占共享数据,避免竞争条件,确保数据一致性。但可惜的是,这属于阻塞性同步,所有其他线程...
分类:
编程语言 时间:
2014-10-31 18:56:36
阅读次数:
225
一、什么是自旋锁 一直以为自旋锁也是用于多线程互斥的一种锁,原来不是! 自旋锁是专为防止多处理器并发(实现保护共享资源)而引入的一种锁机制。自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执.....
分类:
编程语言 时间:
2014-10-31 13:25:10
阅读次数:
294
在《多线程编程之数据访问互斥》一文中简单介绍了原子锁,这里再详细说一下原子锁的概念和用途。(1)简单数据操作 如果在一个多线程环境下对某个变量进行简单数学运算或者逻辑运算,那么就应该使用原子锁操作。因为,使用临界区、互斥量等线程互斥方式将涉及到很多操作系统调用和函数调用等,效率肯定不如原子操作...
分类:
编程语言 时间:
2014-10-31 11:35:27
阅读次数:
214