内置条件队列存在一些缺陷。每个内置锁都只能有一个相关联的条件队列,因而在像BounderBuffer这种类中,多个线程可能在同一个条件队列上等待不同的条件谓词,并且在最常见的加锁模式下公开条件队列对象。这些因素都使得无法满足在使用notifyAll时所有等待线程为统一类型的需求。如果想编写一个带有多个条件谓词的并发对象,或者想获得除了条件队列可见性之外的更多控制权,就可以使用显示的Lock和Con...
分类:
编程语言 时间:
2016-01-01 19:01:24
阅读次数:
194
Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。当两个并发线程访问同一个对象object中的这个加锁同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。然而...
分类:
编程语言 时间:
2015-12-30 21:51:19
阅读次数:
188
Java 多线程(六) synchronized关键字详解 多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。 同步机制可以使用synchronized关键字实现。 当synchronized关键字修饰一个方法的时候,该方...
分类:
编程语言 时间:
2015-12-29 14:28:55
阅读次数:
241
原文地址:http://www.oschina.net/code/snippet_111708_25417线程安全的单例模式实现有几种思路,个人认为第2种方案最优雅:1、饿汉式2、借助内部类3、普通加锁解决4、双重检测,但要注意写法如果单体模式继续扩展为N元单体模式,那就是对象池模式了饿汉式单例 p...
分类:
编程语言 时间:
2015-12-29 12:54:14
阅读次数:
194
@property与@synthesize是成对出现的,可以自动生成某个类成员变量的存取方法。在Xcode4.5以及以后的版本,@synthesize可以省略。1.atomic与nonatomicatomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避...
分类:
其他好文 时间:
2015-12-28 18:33:25
阅读次数:
130
读写锁读写锁与互斥量类似。也是通过加锁的方式来实现线程之间的数据同步。互斥量的特点是 一次只有一个线程对其加锁。而对于度操作来说,即使有多个线程同时进行读操作是不会 产生冲突的。读写锁便利用了这个特性。它一共有三个状态:读模式下加锁状态,写模式 下加锁状态和不加锁状态。使用的规则如下:当读写锁是写加...
分类:
编程语言 时间:
2015-12-28 09:05:10
阅读次数:
245
今天在Ubuntu 14.04下用apt-get目录安装SSH的时候发生了这个错误提示。经过一番查找了解可能发生的原因。首先apt作为一个软件更新机制,每次运行的时候会对apt数据库加锁。当发生上面的错误提示的时候,应该先查找是哪条进程正在运行apt-get或者apt命令,比如系统更新之类。解决办法...
分类:
系统相关 时间:
2015-12-28 06:08:31
阅读次数:
204
Java 多线程(五) 多线程的同步为什么要引入同步机制 在多线程环境中,可能会有两个甚至更多的线程试图同时访问一个有限的资源。必须对这种潜在资源冲突进行预防。 解决方法:在线程使用一个资源时为其加锁即可。 访问资源的第一个线程为其加上锁以后,其他线程便不能再使用那个资源,除非被解锁。程序实例...
分类:
编程语言 时间:
2015-12-26 11:35:16
阅读次数:
220
1.引言数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。...
分类:
数据库 时间:
2015-12-25 16:49:24
阅读次数:
181
0. 前言 前段时间在看无锁队列相关的东西时发现了一篇关于加锁队列算法优化的文章,故看了下其原理以及使用C实现了该队列。该队列在Java中类LinkedBlockingQueue以及实现了该功能。 相关文章:Simple, Fast, and Practical Non-Blocking and.....
分类:
编程语言 时间:
2015-12-22 19:31:56
阅读次数:
225