重庆博为峰软件开发培训机构

试听课 + 活动课
填写信息优先获取试听课

位置:学校首页 > 学校动态>重庆java培训机构全国口碑

重庆java培训机构全国口碑

重庆java培训机构全国口碑榜,重庆java培训到博为峰,更懂企业用人需求,主流技术点迭代更新。博为峰-专注软件测试培训17年,累计开班1000+期,为7000+企业输送了约70000测试人才,每一名学员的就业信息都真实可查.全国18大校区,签订就业相关协议,享受终身职业护航。


重庆java培训机构全国口碑榜

下文重庆java培训学校小编分享知识点java死锁,一起来看看吧

某一个同步块同时拥有两个以上对象的锁,就可能产生死锁。

Lock(锁)

JDK5开始,JAVA提供了更强大的线程同步机智---通过显示的定义同步锁对象来实现同步,同步锁使用Lock对象充当

java.util.concurrent.locks.Lock接口是控制多个线程对象共享资源进行访问的工具。锁提供了对象共享资源的独占空间,每一次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前就要先获得Lock对象

ReentrantLock类实现了Lock,他拥有与synchronized相同的并发性和内存语义,在实现线程安全的控制中,比较常用的是ReentrantLock,可以显示加锁、释放锁。

public class DemoLock{

public static void main(String[]args){

BuyTicket buyTicket=new BuyTicket();

new Thread(buyTicket,"玛丽").start();

new Thread(buyTicket,"小二").start();

new Thread(buyTicket,"小民").start();

}

}

class BuyTicket1 implements Runnable{

private int ticketnum=10;

//d定义lock锁

private final ReentrantLock lock=new ReentrantLock();

Override

public void run(){

while(true){

try{

lock.lock();

if(ticketnum<=0){

break;

}

try{

Thread.sleep(100);

}catch(InterruptedException e){

e.printStackTrace();

}

System.out.println(Thread.currentThread().getName()+"买到了第"+ticketnum--+"票");

}finally{

lock.unlock();

}

}

}

}

领取试听课
温馨提示:为不影响您的学业,来校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
版权所有:搜学搜课(www.soxsok.com) 技术支持:搜学搜课网