java5的线程锁技术-笔记整理9
2017-04-16 22:43
183 查看
java5的线程锁技术
1.Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。锁是上在代表要操作的资源的类的内部方法中,而不是线程代码中!2、读写锁:分为读锁和写锁,多个读锁不互斥,读锁和写锁互斥,写锁与写锁互斥。这是由JVM自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能由一个人在写,且不能同时读取,那就上写锁。总之,读的时候上读锁,写的时候上写锁!
读写锁的好处:能够提高性能,也能互斥。
ReentrantLock锁也叫 可重入锁
实例1:使用ReentrantLock来替换之前使用synchronized关键字实现锁互斥
public class ThreadDemo_01{ public static void main(String[] args) { final Outputer output=new Outputer(); new Thread(new Runnable() { @Override public void run() { while(true){ output.output("xiaoming"); } } }).start(); new Thread(new Runnable() { @Override public void run() { while(true){ output.output("xiaohong"); } } }).start(); } static class Outputer{ Lock lock=new ReentrantLock(); public void output(String name){ lock.lock(); try { int length=name.length(); for (int i = 0; i < length; i++) { System.out.print(name.charAt(i)); } System.out.println(); }finally{ lock.unlock(); } } } }
相关文章推荐
- java笔记:熟练掌握线程技术---基础篇之线程的协作和死锁的问题(下)
- 【张孝祥并发课程笔记】10:java5的线程锁技术
- java笔记:熟练掌握线程技术---基础篇之线程的协作和死锁的问题(下)
- 【学习笔记】java核心技术学习笔记整理
- 三、java多线程核心技术(笔记)——线程的优先级
- java笔记:熟练掌握线程技术---基础篇之解决资源共享的问题(中)--中篇
- Java核心技术学习笔记之六——线程
- 二、java多线程编程核心技术之(笔记)——如何停止线程?
- java整理笔记之反射技术
- java笔记:熟练掌握线程技术---基础篇之解决资源共享的问题(中)--下篇
- java笔记:熟练掌握线程技术---基础篇之解决资源共享的问题(中)--前篇
- JAVA核心技术学习笔记(第七版,Ⅱ高级特性)
- JAVA2核心技术阅读笔记(一)
- 范例解说Java里的线程概念与线程同步技术
- 最近仔细研究了一下Java的NIO以及线程并发,搞清了点思路,特作笔记如下(NIO篇)
- java的反射技术功能十分强大,整理一些资料!!
- 范例解说Java里的线程概念与线程同步技术
- JAVA 核心技术卷1学习笔记(1)
- Java 学习笔记 (5) - 线程 Thread
- JAVA2核心技术第1卷 笔记 02