公平与非公平锁:锁Lock分为“公平锁”和“非公平锁”,公平锁表示线程获取锁的顺序是按照线程加锁的顺序来分配的,即先来先得的FIFO先进先出顺序。而非公平锁就是一种获取锁的抢占机制,是随机获得锁的,和公平锁不一样的就是先来的不一定先得到锁,这个方式可能造成某些线程一直拿不到锁,结果也就是不公平的了。
1、公平锁实例
public class Service {
private Re...
分类:
编程语言 时间:
2016-05-13 03:08:01
阅读次数:
139
介绍在上篇博客中我详细说明了各种单例的写法和问题。以为我们已经找到很好单例写法和问题解决办法。但是Java就是这么有意思,总有新的想法提出和问题出现。
上篇博客的的双重检查加锁(double checked locking)单例在Java1.5之前也会某种情况下产生多个实例,并且volatile关键字也会导致的一些复杂的问题枚举单例在《Effective Java 》第二版第3条中,提到这一句话...
分类:
移动开发 时间:
2016-05-12 23:31:41
阅读次数:
474
线程间的通信问题。
注意同步的前提:
1,有两个或两个以上的线程
2,用同一个锁
wait()
notify()
notifyAll()
以上方法都是定义在Object类中的方法。
都使用在同步中,因为要对持有监视器(加锁)的线程操作。
所以要使用在同步中,因为只有同步才会有锁。
为什么这些操作线程的方法要定义在Object类中呢?
因为这些方法在操作同步中线程时,都...
分类:
编程语言 时间:
2016-05-12 20:57:40
阅读次数:
154
参数类别
参数
说明 原子性
atomic
对属性加锁,多线程下线程安全,默认值
nonatomic
对属性不加锁,多线程下不安全,但速度快
读写属性
readwrite
生成getter、setter方法,默认值
readonly
只生成getter方法
set方法处理
assign
直接赋值,默认值
retain...
分类:
其他好文 时间:
2016-05-12 18:22:21
阅读次数:
114
/*
复习集合框架:
Collection
|--List:有序的,可重复,有索引
|--ArrayList:底层数据结构是基于数组的,查询速度快,增删速度较慢
|--LinkedList:底层数据结构是基于链表的,查询速度慢,增删速度较快
|--Vector:ArrayList是对Vector的版本升级,Vector是线程同步的,而ArrayList是线程不同步的,需要加锁。
|...
分类:
编程语言 时间:
2016-05-12 16:15:20
阅读次数:
132
一、程序中的优化策略—-CopyOnWriteArrayList
Copy-On_Write 是一种用于程序设计中的优化策略,器基本思路是:
从多个线程共享同一个列表,当某个线程想要修改这个列表的元素时,会把列表的元素Copy一份,然后进行修改,修改完成之后在在将新的元素设置给这个列表,这是一种懒惰策略。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不要加锁,因为当前容器不会...
分类:
移动开发 时间:
2016-05-12 13:26:32
阅读次数:
177
Scala不可变集合Scala不可变集合的设计目标是提供高效又安全的实现。这些集合中的大部分都是用高级技巧来在集合的不同版本之间“共享”内存。其中较长使用到的是Vector和List。
在一般的编程任务中,不可变集合有很多超出可变集合的优点。尤其重要的一点是不可变集合可以在多线程之中共享而无需加锁。Vector内部结构Scala的Vector实现为一组嵌套数组,在分割和连接时非常有效率。适用于大部...
分类:
其他好文 时间:
2016-05-12 11:59:40
阅读次数:
183
一、TortoiseSVN Client 获取服务器端的文件到新的本地文件夹 1.在本地新文件夹上右键菜单: 2.打开Repo-browser(可能需要输入你的用户名&密码) 3.输入服务器端SVN(仓库)的地址,OK后就可以看到服务器端的目录了 @1.可以查看服务端不同版本号下的数据; @2.如果 ...
分类:
其他好文 时间:
2016-05-11 15:08:04
阅读次数:
1306
1.同步代码块 在Thread子类run()方法代码块之外套一个下面的代码 这里的obj就是需要锁定的对象。 2.同步方法 只要在可变类中修改方法上,加上syschronized修饰即可。 注:同步方法的同步监视器是this。 3.同步锁 先在类中定义锁对象,然后在需要保证线程安全的方法中加锁(锁变 ...
分类:
其他好文 时间:
2016-05-11 09:38:19
阅读次数:
526
排它锁概念: Exclusive Locks,被称为X锁,写锁,独占锁.如果事物T1对数据对象O1加上了排它锁,那么在整个加锁期间,只允许事务T1对O1进行读写操作,其他事务必须等到T1释放锁后才能进行操作.在单机环境中,JDK提供了synchronized关键字和ReentrantLock 重用锁 ...
分类:
其他好文 时间:
2016-05-10 09:42:42
阅读次数:
147