在多线程访问的时候,同一时刻只能有一个线程能够用 synchronized 修饰的方法或者代码块,解决了资源共享。下面代码示意三个窗口购5张火车票: 1 package com.jikexueyuan.thread; 2 /* 3 * 未使用synchronized,存在并发 ...
在多线程访问的时候,同一时刻只能有一个线程能够用 synchronized 修饰的方法或者代码块,解决了资源共享。下面代码示意三个窗口购5张火车票:
1 package com.jikexueyuan.thread; 2 /* 3 * 未使用synchronized,存在并发 4 */ 5 class RunnableDemo implements Runnable{ 6 private int tickets = 5; 7 @Override 8 public void run() { 9 for (int i = 0; i < 10; i++) {10 try {11 Thread.sleep(500);12 } catch (InterruptedException e) {13 e.printStackTrace();14 }15 if (tickets>0) {16 System.out.println("车票: "+tickets--);17 }18 }19 20 }21 }22 23 public class ThreadTest {24 25 public static void main(String[] args) {26 RunnableDemo r = new RunnableDemo();27 Thread t1 = new Thread(r);28 Thread t2 = new Thread(r);29 Thread t3 = new Thread(r);30 t1.start();31 t2.start();32 t3.start();33 }34 35 }
原标题:浅谈Java多线程同步机制之同步块(方法)——synchronized
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。