一直不明白一个问题,因为在书上关于生产者和消费者的例子里看到一段这样的代码,估计很多人都和我一样迷惑 1 public synchronized void set(String name, String content) { 2 if (!flag) { 3 ...
分类:
其他好文 时间:
2015-01-08 17:14:52
阅读次数:
170
新学了一个技巧:自动锁,类似于ace的自动锁,进入作用域声明一个用mutex初始化的自动锁对象,对象声明成功则表示获取锁资源成功,程序继续运行,否则持续等待;在离开作用域时自动释放锁。classAutoLock{public: AutoLock(pthread_mutex_t*pMutex):m.....
分类:
其他好文 时间:
2014-12-08 17:39:50
阅读次数:
153
在这里写这种文章好奇怪,先用作笔记吧Java中有如下的方法来处理代码块的并发访问问题:一是关键字synchronized二是加锁(锁对象,条件对象)Java给每一个对象都提供了一个内部锁,在方法的定义中加上关键字synchronized后,那么对象的锁将保护整个方法。也就是说下面两种写法是等价的:p...
分类:
编程语言 时间:
2014-11-26 13:47:15
阅读次数:
137
在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的封锁,用来控制对竞争资源并发访问的控制,这些内容主要集中在java.util.concurrent.locks包下面,里面有三个重要的接口Condition、Lock、ReadWriteLock。ConditionCondition将Obj...
分类:
编程语言 时间:
2014-11-21 15:56:01
阅读次数:
320
多线程的同步1. 锁对象。 应用场景:当某个数据可能被其他线程修改时,给涉及到数据的方法上锁,保证同一时刻只有拥有这个锁的线程能访问该数据,其他要调用这个方法的线程被阻塞。注意:必须是不同线程访问同一个对象的时候,其中的锁对象也是同一个。 应用方法: public class Bank{ ...
分类:
编程语言 时间:
2014-11-19 07:12:30
阅读次数:
223
ReentrantLock类有一个方法newCondition用来生成这个锁对象的一个条件(ConditionObject)对象,它实现了Condition接口。Condition提供了线程通讯的一套机制await和signal等线程间进行通讯的方法。。
1、适用场景
当某线程获取了锁对象,但因为某些条件没有满足,需要在这个条件上等待,直到条件满足才能够往下继续执行时,就需要...
分类:
其他好文 时间:
2014-10-30 19:13:14
阅读次数:
242
1.概述
使用Condition应在Lock的前提下,请先参见Java_并发线程_Lock、ReadWriteLock一文。在synchronized同步代码块中使用了obj的锁对象,然后通过obj.notify()和obj.wait()来配合处理多线程的问题。然而,同样lock和condition配合使用同样可以完成同样的功能,condition只有配合lock使用才有意义,只不过lock...
分类:
编程语言 时间:
2014-10-29 10:48:50
阅读次数:
250
防止用户操作数据库的并发问题,可以使用锁对象技术。se11的最后一个功能是建立锁对象,例如对创建的数据库表加锁,命名可以是"E"+表名。名字起好后点创建,输入锁对象短文本(描述),在tables选项中选择要加锁的表名,之后在下面的lock parameter中一般选择"E"(专用,累积),设置好后,...
分类:
其他好文 时间:
2014-10-22 17:15:56
阅读次数:
235
多线程个人理解一般一个程序有一个主线程,主要控制点击,UI界面,如果执行一个耗时的操作的话,用户体验相当垃圾,因此我们会讲执行耗时的操作方到一个新的线程,但是用线程的话要提防线程的安全问题,如(共享资源)导致数据错乱如售票任务,银行存钱等(解决办法使用@synchronized(锁对象))苹果提供了...
分类:
编程语言 时间:
2014-10-21 17:11:42
阅读次数:
309
ConcurrentHashMap就是HashMap的线程安全版本,值得一提的是,ConcurrentHashMap并没有用一个锁来保护整个哈希区,而是使用了16个锁,将哈希区分成了16个桶,每一个锁控制一个桶,即锁分段,这样子可以更加细粒度的锁对象,所以最大提供16个并发的读写,来提高吞吐量。...
分类:
编程语言 时间:
2014-10-09 16:00:36
阅读次数:
162