多线程同步化

class MyThread implements Runnable{           //利用Runnable接口实现多线程操作
    private int ticket=5;                    //定义5个票数
    public void run(){
        for(int i=0;i<99;i++){
            synchronized(this){                     //利用synchronized同步化票数
                if(ticket>0){
                    try{
                         Thread.sleep(300);}                            //使用sleep休眠方法需要加cry catch块
                           catch(InterruptedException e){}                  //处理异常
         System.out.println("卖票:ticket="+ticket--);}}}                  //输出卖出后的票数
}}
public class SyncDemo2{
    public static void main(String[] args){
        MyThread mt=new MyThread();                                 //给MyThread创建对象
            Thread t1=new Thread(mt);                         //把MT对象传给Thread并创t1线程对象
            Thread t2=new Thread(mt);                         //把MT对象传给Thread并创t2线程对象
            Thread t3=new Thread(mt);                         //把MT对象传给Thread并创t3线程对象
            t1.start();
            t2.start();
            t3.start();                                  //使用start启动线程对象
}}

原文地址:https://www.cnblogs.com/l666/p/9097457.html