Java进阶(三)多线程开发关键技术
来源:互联网 发布:linux more怎么翻页 编辑:程序博客网 时间:2024/05/30 02:52
http://www.jasongj.com/java/multi_thread/
1.sleep 与wait
2.synchronized
锁的使用是为了操作临界资源的正确性,而往往一个方法中并非所有的代码都操作临界资源。换句话说,方法中的代码往往并不都需要同步。此时建议不使用同步方法,而使用同步代码块,只对操作临界资源的代码,也即需要同步的代码加锁。这样做的好处是,当一个线程在执行同步代码块时,其它线程仍然可以执行该方法内同步代码块以外的部分,充分发挥多线程并发的优势,从而相较于同步整个方法而言提升性能。
释放Java内置锁的唯一方式是synchronized方法或者代码块执行结束。若某一线程在synchronized方法或代码块内发生死锁,则对应的内置锁无法释放,其它线程也无法获取该内置锁(即进入跟该内置锁相关的synchronized方法或者代码块)。
3.Java中的锁
a)重入锁
Java中的重入锁(即ReentrantLock)与Java内置锁一样,是一种排它锁。使用synchronized的地方一定可以用ReentrantLock代替。
重入锁需要显示请求获取锁,并显示释放锁。为了避免获得锁后,没有释放锁,而造成其它线程无法获得锁而造成死锁,一般建议将释放锁操作放在finally块里,如下所示。
b)条件锁
条件锁只是一个帮助用户理解的概念,实际上并没有条件锁这种锁。对于每个重入锁,都可以通过newCondition()方法绑定若干个条件对象。
4.信号量Semaphore
0 0
- Java进阶(三)多线程开发关键技术
- Java进阶(三)多线程开发关键技术
- Java进阶(三)多线程开发关键技术
- Java进阶(三)多线程开发关键技术
- Java进阶(三)多线程开发关键技术
- Java进阶(三)多线程开发关键技术
- Java进阶(三)多线程开发关键技术
- Java进阶(三)多线程开发关键技术
- JAVA进阶学习-多线程基础详解(三)锁
- Java开发关键技术
- java 多线程开发三
- 断点续传---多线程下载进阶(三)
- 多线程进阶代码三
- 多线程进阶之三
- JAVA系统开发关键技术简介
- JAVA系统开发关键技术简介
- java多线程(三)
- java多线程(三)
- Java进阶(五)Java I/O模型…
- java学习之简单知识点的笔记
- Java进阶(四)线程间通信剖析
- Mycat开发实践---mycat的连接池模型
- 制作flash cs的简单小游戏
- Java进阶(三)多线程开发关键技术
- the mesh is compo…
- Java进阶(二)当我们说线程安全时…
- 使用 include-what-you-use 检测冗余头文件
- drawerLayout 抽屉的另一半,设置为透明的颜色
- 微博中找出具有某种意向的用户的思…
- Java系列(一)Annotation(注解)
- socket + vue + canvas实践,你画我猜(一)
- 100天计划~day 36