Java用synchonized来修饰方法 实现同步访问

/***

  • 除了可以对代码块进行同步外。也可以对方法进行方法同步
  • @author bo

*/

public class ThreadMet {

   public static void main(String[] args) {

   TestThreadM threadM = new TestThreadM();

   Thread thread = new Thread(threadM);
   //开启多线程
   thread.start();

}
}
class TestThreadM implements Runnable{

private int tickets  =  20;

@Override
public void run() {
    // TODO Auto-generated method stub
    while (true) {
        saleTicket();
    }
}

public synchronized void saleTicket() {//synchronized方法来实现同步....
    if (tickets > 0) {
        try {
            Thread.sleep(100);
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println(e.getMessage());
        }
        System.out.println(Thread.currentThread().getName() + "当前的票" +tickets--);
    }
}

}

使用synchonized方法来实现线程之间的同步,当有一个线程进入到synchonized方法修饰的方法中的时候,其他的线程并不能进入此方法区域,直到第一个线程执行完成并且离开后,释放了它的响应权。其他线程才能进入到此区域..

你可能感兴趣的:(Java用synchonized来修饰方法 实现同步访问)