date0412/ThisLockThreadSafe.java

来源:互联网 发布:淘宝工作总结范文 编辑:程序博客网 时间:2024/05/23 17:12
/*同步函数用的是哪一个锁呢?函数需要被对象调用。那么函数都有一个所属对象引用,就是this所以同步函数使用的锁是this通过该程序进行验证。使用两个线程来卖票。一个线程在同步代码块中。一个线程在同步函数中。都在执行卖票动作。*/class Ticket implements Runnable{private int tick=100;//Object obj = new Object();boolean flag=true;public void run(){if(flag){while(true){//synchronized(obj)synchronized(this)//同步函数使用的锁是this{if(tick>0){try{Thread.sleep(10);}catch(Exception e){}System.out.println(Thread.currentThread().getName()+"...synchronized code..."+tick--);}}}}elsewhile(true)show();}public synchronized void show()//同步函数使用的锁是this{if(tick>0){try{Thread.sleep(10);}catch(Exception e){}System.out.println(Thread.currentThread().getName()+"...synchronized function........."+tick--);}}}class ThisLockThreadSafe {public static void main(String[] args) {Ticket t = new Ticket();new Thread(t).start();try{Thread.sleep(10);}catch(Exception e){}t.flag=false;new Thread(t).start();}}

0 0
原创粉丝点击