首页 > 代码库 > 同步代码块
同步代码块
package tongbu.cn; /* * 多个线程同时操作同一资源,会引起卖出的票为负数,为了解决这个问题,就要使用同步 * 所谓同步,就是多个操作在同一时间段内 只能有一个线程进行 * 同步代码块的格式 * synchronized(同步对象){ * 需要同步的代码 * } */ //一个类实现runnable class TongBuDaiMa implements Runnable{ private int tiket = 5; public void run(){ for (int i = 0; i < 100; i++) { //判断票数是否大于0 ,大于0的话就卖票 //同步代码块 synchronized (this) { if (tiket>0) { //设置线程之间延迟 try{Thread.sleep(50);} catch(Exception e){} System.out.println("tiket = "+ tiket--); } } } } } public class TongBu { public static void main(String[] args) { TongBuDaiMa tb = new TongBuDaiMa(); Thread tbd1 = new Thread(tb); Thread tbd2 = new Thread(tb); Thread tbd3 = new Thread(tb); tbd1.start(); tbd2.start(); tbd3.start(); } }
同步代码块
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。