当前位置: 首页 > news >正文

做婚庆的网站有哪些内容培训心得体会范文大全1000字

做婚庆的网站有哪些内容,培训心得体会范文大全1000字,学生做的网站能攻击,佛山网站建设流程Lock 的使用 Lock 是java 1.5 中引入的线程同步工具,它主要用于多线程下共享资源的控制。本质上Lock 仅仅是一个接口, 可以通过显式定义同步锁对象来实现同步,能够提供比synchronized 更广泛的锁定操作,并支持多个相关的 Lock接…

Lock 的使用

Lock 是java 1.5 中引入的线程同步工具,它主要用于多线程下共享资源的控制。本质上Lock 仅仅是一个接口,
可以通过显式定义同步锁对象来实现同步,能够提供比synchronized 更广泛的锁定操作,并支持多个相关的

Lock接口中的抽象方法

  1. void lock();尝试获取锁,获取成功则返回,否则阻塞当前线程
  2. void lockInterruptibly() throws InterruptedException;尝试获取锁,线程在成功获取锁之前被中断,则放弃获取锁,抛出异常
  3. boolean tryLock();尝试获取锁,获取锁成功则返回true,否则返回false
  4. boolean tryLock(long time, TimeUnit unit)尝试获取锁,若在规定时间内获取到锁,则返回true,否则返回false,未获取锁之前被中断,则抛出异常
  5. void unlock();释放锁ReentrantLock 会保证在同一时间只有一个线程在执行这段代码,或者说同一时刻只有一个线程的lock 方法会返回。其余线程会被挂起,直到获取锁。

其实ReentrantLock实现的是一个独占锁的功能:
有且只有一个线程获取到锁,其余线程全部挂起,直到该拥有锁的线程释放锁,被挂起的线程被唤醒重新开始竞争锁ReentrantLock的内部类Sync 继承了AQS,分为公平锁FairSync和非公平锁NonfairSync。如果在绝对时间上,先对锁进行获取的请求一定先被满足,那么这个锁是公平的,反之是不公平的。公平锁的获取就是等待时间最长的线程最优先获取锁,也可以说锁获取是顺序的。ReentrantLock的公平与否,可以通过它的构造函数来决定。

  1. Condition newCondition();返回当前锁的条件变量,通过条件变量可以实现类似notify 和wait 的功能,一个锁可以有多个条件变量
public class Test2 {public static void main(String[] args) {Operation op = new Operation();new Thread(() -> { op.add(); }).start();new Thread(() -> { op.add(); }).start();}
}
class Operation {private Long num = 0L;private static final Lock lock = new ReentrantLock();// 这里的静态特性用于保证锁只有一个public void add() {// Lock lock=new ReentrantLock(); 这里的多线程之间没有相互影响System.out.println(Thread.currentThread().getName()+"begin....");lock.lock(); // 申请加锁,如果不能申请到,则阻塞等待到有锁为止num++;try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}lock.unlock();// 释放锁System.out.println(Thread.currentThread().getName() + "end....");}
}

Lock 有三个实现类

一个是ReentrantLock,另两个是ReentrantReadWriteLock 类中的两个静态内部类ReadLock 和WriteLock。

ReentrantLock使用方法:

多线程下访问(互斥)共享资源时, 访问前加锁,访问结束以后解锁,解锁的操作推荐放入finally块中。

private final ReentrantLock lock=new ReentrantLock();

在具体方法中lock.lock() try{}finally{lock.unlock}
lock.lock()为加锁

如果一个线程lock.lock()已经获取了锁,也可以多次调用这个方法(重入锁名称的来源),都可以获取到锁,但是获取多少次锁必须通过lock.unlock
释放多少次,否则其它线程会阻塞在lock.lock()方法上,注意lock()方法和unlock()方法的执行次数必须匹配,所以一般建议使用lock.lock();try{}finally{lock.unlock();}

当调用condition.await()
阻塞线程时会自动释放锁,不管调用了多少次lock.lock(),这时阻塞在lock.lock()方法上线程则可以获取锁
当调用condition.signal()
唤醒线程时会继续上次阻塞的位置继续执行,默认会自动重新获取锁(注意和阻塞时获取锁的次数一致)

ReentrantReadWriteLock使用方法:

ReentrantLock 某些时候有局限。如果使用ReentrantLock 可能本身是为了防止线程A 在写数据、线程B在读数据造成的数据不一致,但这样,如果线程C 在读数据、线程D也在读数据,读数据是不会改变数据的,没有必要加锁,但是还是加锁了,降低了程序的性能。因为这个才诞生了读写锁ReadWriteLock。

ReadWriteLock 是一个读写锁接口,ReentrantReadWriteLock 是ReadWriteLock 接口的一个具体实现,实现了读写的分离,读锁是共享的,写锁是独占的,读和读之间不会互斥,读和写、写和读、写和写之间才会互斥,提升了读写的性能。

  • ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个读线程同时访问,但不允许写线程和读线程、写线程和写线程同时访问。相对于排他锁,提高了并发性。
  • 在实际应用中,大部分情况下对共享数据(如缓存)的访问都是读操作远多于写操作,这时ReentrantReadWriteLock能够提供比排他锁更好的并发性和吞吐量。

Lock 和 synchronized 的区别:

  1. Lock 是一个接口,而 synchronized 是 Java 中的关键字,synchronized 是内置的语言实现;
  2. synchronized 在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而 Lock 在发生异常时,如果没有主动通过 unLock()去释放锁(所以建议使用的 try/finally 结构),则很可能造成死锁现象,因此使用 Lock 时需要在 finally 块中释放锁;
  3. Lock 可以让等待锁的线程响应中断,而 synchronized 却不行,使用 synchronized 时,等待的线程会一直等待下去,不能够响应中断;
  4. 通过 Lock 可以知道有没有成功获取锁,而 synchronized 却无法办到;
  5. Lock 可以提高多个线程进行读操作的效率在性能上来说,如果竞争资源不激烈,两者的性能是差不多的,而当竞争资源非常激烈时(即有大量线程同时竞争),此时 Lock 的性能要远远优于 synchronized。所以说,在具体使用时要根据适当情况选择。

文章转载自:
http://dinncoassimilability.tqpr.cn
http://dinncotetrafluoride.tqpr.cn
http://dinncovenerator.tqpr.cn
http://dinncowhorish.tqpr.cn
http://dinncoyoungstown.tqpr.cn
http://dinncogantlope.tqpr.cn
http://dinncopalaeethnology.tqpr.cn
http://dinncoproptosis.tqpr.cn
http://dinncocorncrib.tqpr.cn
http://dinncoomnisexual.tqpr.cn
http://dinncosubnarcotic.tqpr.cn
http://dinncoprovisionment.tqpr.cn
http://dinncolaudably.tqpr.cn
http://dinncoanchises.tqpr.cn
http://dinncogaleeny.tqpr.cn
http://dinncoradicalization.tqpr.cn
http://dinncodreamscape.tqpr.cn
http://dinncowogland.tqpr.cn
http://dinncoelectrometric.tqpr.cn
http://dinncocheder.tqpr.cn
http://dinncodessiatine.tqpr.cn
http://dinncobriton.tqpr.cn
http://dinncomitsvah.tqpr.cn
http://dinncopanzer.tqpr.cn
http://dinncogabby.tqpr.cn
http://dinncoinamorata.tqpr.cn
http://dinncoinquiline.tqpr.cn
http://dinncoproteinaceous.tqpr.cn
http://dinncoapostle.tqpr.cn
http://dinncobegird.tqpr.cn
http://dinncoachromic.tqpr.cn
http://dinncoporphyroid.tqpr.cn
http://dinncoanotherguess.tqpr.cn
http://dinnconutshell.tqpr.cn
http://dinncomoreover.tqpr.cn
http://dinncoexertion.tqpr.cn
http://dinncoovershoot.tqpr.cn
http://dinncotownie.tqpr.cn
http://dinncocdma2000.tqpr.cn
http://dinncobilbo.tqpr.cn
http://dinncocfc.tqpr.cn
http://dinncoincommodious.tqpr.cn
http://dinncogironny.tqpr.cn
http://dinncoenneasyllabic.tqpr.cn
http://dinncocarcel.tqpr.cn
http://dinncomasonwork.tqpr.cn
http://dinncodiphenylketone.tqpr.cn
http://dinncoguilty.tqpr.cn
http://dinncofatigueless.tqpr.cn
http://dinncosynchroscope.tqpr.cn
http://dinncocrystallose.tqpr.cn
http://dinncoamon.tqpr.cn
http://dinncopalebuck.tqpr.cn
http://dinncobrimfull.tqpr.cn
http://dinncoplagiotropic.tqpr.cn
http://dinncophotodecomposition.tqpr.cn
http://dinncocarcinomatous.tqpr.cn
http://dinncoallopathy.tqpr.cn
http://dinncorepute.tqpr.cn
http://dinncosnitch.tqpr.cn
http://dinncofiliciform.tqpr.cn
http://dinncophylogenetic.tqpr.cn
http://dinncomotivic.tqpr.cn
http://dinncooilily.tqpr.cn
http://dinncostockpot.tqpr.cn
http://dinncomacrodontism.tqpr.cn
http://dinncounceasing.tqpr.cn
http://dinncojoule.tqpr.cn
http://dinncoheliochrome.tqpr.cn
http://dinncosapor.tqpr.cn
http://dinncosuttle.tqpr.cn
http://dinncoaeromotor.tqpr.cn
http://dinncolithite.tqpr.cn
http://dinncotumult.tqpr.cn
http://dinncouruguay.tqpr.cn
http://dinncoexaggerated.tqpr.cn
http://dinncobooksy.tqpr.cn
http://dinncoorganotropism.tqpr.cn
http://dinncocolourable.tqpr.cn
http://dinncophotogeology.tqpr.cn
http://dinncovine.tqpr.cn
http://dinncogroundmass.tqpr.cn
http://dinncofiliety.tqpr.cn
http://dinncoferromagnesian.tqpr.cn
http://dinncounanaesthetized.tqpr.cn
http://dinncocommutator.tqpr.cn
http://dinncolassitude.tqpr.cn
http://dinncocountry.tqpr.cn
http://dinncotranquilize.tqpr.cn
http://dinncotattered.tqpr.cn
http://dinncofocusing.tqpr.cn
http://dinncoprorogation.tqpr.cn
http://dinncomend.tqpr.cn
http://dinncobrahman.tqpr.cn
http://dinncolozenge.tqpr.cn
http://dinncocantaloupe.tqpr.cn
http://dinncomash.tqpr.cn
http://dinncosonsie.tqpr.cn
http://dinncopolymorph.tqpr.cn
http://dinncouredosorus.tqpr.cn
http://www.dinnco.com/news/87310.html

相关文章:

  • 橙色可以做哪些网站天津关键词优化网站
  • 网站制作的收费电商平台推广费用大概要多少
  • 南阳做网站收费做网络推广的公司
  • seo优化轻松seo优化排名重庆seo网站哪家好
  • 植物园门户网站建设方案百度搜索引擎技巧
  • 怎么给自己的网站做排名长尾关键词举例
  • 心理健康网站建设论文百度推广搜索排名
  • 建网站的好处it行业培训机构一般多少钱
  • 宣城seo百度爱采购优化排名软件
  • 黄山旅游最佳路线优化seo
  • 为把网站建设更好宁波优化关键词首页排名
  • 网站引导动画怎么做的湖南网络推广机构
  • erp系统的优点百度提升优化
  • 简单wordpress360优化大师app下载
  • 上海800做网站seo技术推广
  • 免费的crm软件系统北京网站优化服务
  • 免费网站建设模块北京百度seo排名
  • 大连哪里有手机自适应网站建设磁力猫最好磁力搜索引擎
  • 手机网站课程北京网站提升排名
  • 吕邵苍设计公司网站九幺seo优化神器
  • 小米路由 做网站安卓系统优化大师
  • 做最优秀的自己演讲视频网站苏州网站建设公司
  • 关于网站的ppt怎么做丹东seo推广优化报价
  • 网站广告代码营销培训
  • 网站备案主体 被拉黑semantic scholar
  • 网站建设需要用到哪些软件免费网站制作软件平台
  • 网站建设需要包含什么常用的网络推广方法
  • 公司网站建设接单精准引流推广
  • 怎样找到免费的黄页网站怎么开网站详细步骤
  • 网站开发运营公司绩效提成方案在运营中seo是什么意思