富贵彩票计划群

ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:富贵彩票计划群 >> 网络编程 >> 其他编程教程 >> java lock详解

java lock详解(1/17)

来源:网络整理     时间:2018-11-01     关键词:

本篇文章主要介绍了" java lock详解",主要涉及到方面的内容,对于其他编程教程感兴趣的同学可以参考一下: 来源:http://www.cnblogs.com/baizhanshi/p/6419268.htmlJava并发编程:Lock今天看了并发实践这本书的Ree...

富贵彩票计划群来源:http://www.cnblogs.com/baizhanshi/p/6419268.html

富贵彩票计划群Java并发编程:Lock

富贵彩票计划群今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章。

  在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。

  也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺陷讲起,然后再讲述java.util.concurrent.locks包下常用的有哪些类和接口,最后讨论以下一些关于锁的概念方面的东西

  以下是本文目录大纲:

富贵彩票计划群  一.synchronized的缺陷

  二.java.util.concurrent.locks包下常用的类

  三.锁的相关概念介绍

一.synchronized的缺陷

  synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?

富贵彩票计划群  在上面一篇文章中,我们了解到如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:

富贵彩票计划群  1)获取锁的线程执行完了该代码块,然后线程释放对锁的占有;

富贵彩票计划群  2)线程执行发生异常,此时JVM会让线程自动释放锁。

  那么如果这个获取锁的线程由于要等待IO或者其他原因(比如调用sleep方法)被阻塞了,但是又没有释放锁,其他线程便只能干巴巴地等待,试想一下,这多么影响程序执行效率。

富贵彩票计划群  因此就需要有一种机制可以不让等待的线程一直无期限地等待下去(比如只等待一定的时间或者能够响应中断),通过Lock就可以办到。

  再举个例子:当有多个线程读写文件时,读操作和写操作会发生冲突现象,写操作和写操作会发生冲突现象,但是读操作和读操作不会发生冲突现象。

富贵彩票计划群  但是采用synchronized关键字来实现同步的话,就会导致一个问题:

富贵彩票计划群  如果多个线程都只是进行读操作,所以当一个线程在进行读操作时,其他线程只能等待无法进行读操作。

  因此就需要一种机制来使得多个线程都只是进行读操作时,线程之间不会发生冲突,通过Lock就可以办到。

  另外,通过Lock可以知道线程有没有成功获取到锁。这个是synchronized无法办到的。

  总结一下,也就是说Lock提供了比synchronized更多的功能。但是要注意以下几点:

富贵彩票计划群  1)Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。Lock是一个类,通过这个类可以实现同步访问;

富贵彩票计划群  2)Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synchronized方法或者synchronized代码块执行完之后,系统会自动让线程释放对锁的占用;而Lock则必须要用户去手动释放锁,如果没有主动释放锁,就有可能导致出现死锁现象。

富贵彩票计划群 二.java.util.concurrent.locks包下常用的类

  下面我们就来探讨一下java.util.concurrent.locks包中常用的类和接口。

  1.Lock

  首先要说明的就是Lock,通过查看Lock的源码可知,Lock是一个接口:

1

2

3

4

5

6

7

8

publicinterfaceLock {

相关图片

富贵彩票计划群相关的文章

博乐彩票计划群 快赢彩票计划群 澳彩网彩票计划群 趣彩彩票计划群 98彩票计划群 金巴黎彩票计划群
  • <tr id='ow18w'><strong id='ow18w'></strong><small id='ow18w'></small><button id='ow18w'></button><li id='ow18w'><noscript id='ow18w'><big id='ow18w'></big><dt id='ow18w'></dt></noscript></li></tr><ol id='ow18w'><option id='ow18w'><table id='ow18w'><blockquote id='ow18w'><tbody id='ow18w'></tbody></blockquote></table></option></ol><u id='ow18w'></u><kbd id='ow18w'><kbd id='ow18w'></kbd></kbd>

      <code id='ow18w'><strong id='ow18w'></strong></code>

      <fieldset id='ow18w'></fieldset>
            <span id='ow18w'></span>

                <ins id='ow18w'></ins>
                    <acronym id='ow18w'><em id='ow18w'></em><td id='ow18w'><div id='ow18w'></div></td></acronym><address id='ow18w'><big id='ow18w'><big id='ow18w'></big><legend id='ow18w'></legend></big></address>

                      <i id='ow18w'><div id='ow18w'><ins id='ow18w'></ins></div></i>
                      <i id='ow18w'></i>
                        • <dl id='ow18w'></dl>