标签:code 资源 getname err rri 为什么 star 实例 实现
需求:三个窗口,卖50张票,卖完截至
代码如下:
class SaleTicket implements Runnable{ int num = 50;//票数 @Override public void run() { while(true) { synchronized ("锁") { if(num>0) { System.out.println(Thread.currentThread().getName()+"窗口买了"+num+"号票"); num--; }else { System.out.println(Thread.currentThread().getName()+"窗口票卖完了"); break; } } } } } public class Demo1 { public static void main(String[] args) { SaleTicket ticket = new SaleTicket(); Thread thread1 = new Thread(ticket,"窗口1"); Thread thread2 = new Thread(ticket,"窗口2"); Thread thread3 = new Thread(ticket,"窗口3"); thread1.start(); thread2.start(); thread3.start(); } }
疑问:为什么我们的共享资源为什么不需要加static修饰?(其实这个是我没注意的)
原来我们如果用第二个方式的话,可以看出上面代码中,我们只需要实例化一个runnable的实现类的,
其实我们加了static修饰其实也没有影响,只是加了,它的生命周期变长了,浪费空间,没必要
标签:code 资源 getname err rri 为什么 star 实例 实现
原文地址:https://www.cnblogs.com/zjdbk/p/8969265.html