码迷,mamicode.com
首页 >  
搜索关键字:互斥    ( 2999个结果
java synchronized wait
在多个线程要互斥访问数据,但线程间需要同步时——例如任务分多个阶段,特定线程负责特定阶段的情况,经常合作使用synchronized 和 wait() /** * * 计算输出其他线程锁计算的数据 * @author * */public class Main { public stati...
分类:编程语言   时间:2014-07-07 09:13:53    阅读次数:220
线程同步
一、互斥量互斥量从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。互斥量用pthread_mutex_t数据类型表示,在使用互斥变量以前,必须首先对它进行初始化。可以把它设置为常量PTHREAD_MUTEX_INITIALIZER(只对静态分配的互斥量),也可以通过...
分类:编程语言   时间:2014-07-07 08:20:59    阅读次数:222
C++多线程那些事
线程之间的关系一般有两种,一种是互斥,一种是同步,互斥可以表现为两个线程同时争夺同一个资源,同步可以表现为两个线程按一定次序完成一个任务(如A 完成任务的前半部分,紧接着需要线程B 完成线程的后半部分) 在C++中处理上面两种关系的常用方法是: 关键段、事件、互斥量、信号量。 注意C++开启新的线程一定使用_beginthreadex函数而不要使用CreateThread函数...
分类:编程语言   时间:2014-07-05 23:27:02    阅读次数:224
线程同步的几种方法的总结
线程同步的方式包括:互斥锁、读写锁、条件变量、信号量和令牌。互斥锁和读写锁:提供对临界资源的保护,当多线程试图访问临界资源时,都必须通过获取锁的方式来访问临界资源。(临界资源:是被多线程共享的资源)当读写线程获取锁的频率差别不大时,一般采用互斥锁,如果读线程访问临界资源的频率大于写线程,这个时候采用...
分类:编程语言   时间:2014-07-03 13:10:16    阅读次数:218
sqlite3之sqlite3_busy_handler使用详解
程序运行过程中,如果有其他进程或者线程在读写数据库,那么sqlite3_busy_handler会不断调用回调函数,直到其他进程或者线程释放锁。获得锁之后,不会再调用回调函数,从而向下执行,进行数据库select操作。该函数是在获取不到锁的时候,以执行回调函数的次数来进行延迟,等待其他进程或者线程操作数据库结束,从而获得锁操作数据库。...
分类:数据库   时间:2014-07-02 10:40:47    阅读次数:720
MySQL中的共享锁
MySQL对外提供了一种应用层级别的共享锁,通过这个共享锁,数据库之上的应用程序可以实现互斥功能。这个共享锁通过一组MySQL 内置函数实现。 GET_LOCK(str,timeout) 这个函数的作用是获取共享锁,其中str是应用程序通信双方协商好的一个字符串,timeout是等待该锁的超时时.....
分类:数据库   时间:2014-07-01 00:49:39    阅读次数:312
大话Linux内核中锁机制之RCU、大内核锁
大话Linux内核中锁机制之RCU、大内核锁在上篇博文中笔者分析了关于完成量和互斥量的使用以及一些经典的问题,下面笔者将在本篇博文中重点分析有关RCU机制的相关内容以及介绍目前已被淘汰出内核的大内核锁(BKL)。文章的最后对《大话Linux内核中锁机制》系列博文进行了总结,并提出关于目前Linux内...
分类:系统相关   时间:2014-06-30 22:54:57    阅读次数:482
大话Linux内核中锁机制之完成量、互斥量
大话Linux内核中锁机制之完成量、互斥量在上一篇博文中笔者分析了关于信号量、读写信号量的使用及源码实现,接下来本篇博文将讨论有关完成量和互斥量的使用和一些经典问题。八、完成量下面讨论完成量的内容,首先需明确完成量表示为一个执行单元需要等待另一个执行单元完成某事后方可执行,它是一种轻量级机制。事实上...
分类:系统相关   时间:2014-06-30 21:50:06    阅读次数:406
一种有效避免死锁的互斥锁设计
下面是摘自网络的一段话,我觉得很好;对认识锁很有帮助。 “为什么要加锁?加锁是为了防止不同的线程访问同一共享资源造成混乱。 打个比方:人是不同的线程,卫生间是共享资源。 你在上洗手间的时候肯定要把门锁上吧,这就是加锁,只要你在里面,这个卫生间就被锁了,只有你出来之后别人才能用。想象一下如果卫生间的门没有锁会是什么样? 什么是加锁粒度呢?所谓加锁粒度就是你要锁住的范围是多大。 比如你在家上...
分类:其他好文   时间:2014-06-29 23:50:07    阅读次数:362
Java 理论与实践: 非阻塞算法简介--转载
在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情。Java 语言中主要的同步手段就是synchronized关键字(也称为内在锁),它强制实行互斥,确保执行synchronized块的线程的动作,能够被后来执行受相同锁保护的synchronized块的其...
分类:编程语言   时间:2014-06-29 20:11:33    阅读次数:210
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!