java 多线程-修改不安全线程2
发布时间:2020-12-15 08:23:27 所属栏目:Java 来源:网络整理
导读:抢票线程使用同步块修改 synchronized(this){};this锁定的就是这个对象的资源 public class n {public static void main(String[]args) throws InterruptedException{web wb=new web();new Thread(wb,"a").start();new Thread(wb,"b").start();new Thread(w
抢票线程使用同步块修改
synchronized(this){};this锁定的就是这个对象的资源 public class n { public static void main(String[]args) throws InterruptedException { web wb=new web(); new Thread(wb,"a").start(); new Thread(wb,"b").start(); new Thread(wb,"c").start(); } } class web implements Runnable{ int num=10; private boolean flag=true; public void run() { while(flag) { test2(); } } //修改同步块 public void test2() { synchronized(this) { if(num<0) { flag=false; return; } try { Thread.sleep(200); }catch(InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"-->"+num--); } } public synchronized void test() { if(num<0) { flag=false; return; } try { Thread.sleep(200); }catch(InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"-->"+num--); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |