编程语言
首页 > 编程语言> > java 多线程 锁 同步代码块

java 多线程 锁 同步代码块

作者:互联网

2.线程同步

2.1卖票【应用】

2.2卖票案例的问题【理解】

2.3同步代码块解决数据安全问题【应用】

 在线文档:https://shimo.im/docs/DeE81OXPSJoy024h/ 《day11-多线程》

package myThread;

public class SellTicket implements Runnable{
    private int tickets = 100;
    private Object obj = new Object();
    // 卖票
    @Override
    public void run() {
        while (true){
            // 同步代码块 多线程数据安全处理 锁对象 任意 和php 文件锁类似
            synchronized(obj){
                if(tickets > 0){
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName()+"正在出售第"+tickets);
                    tickets--;

                }else{
                    break;
                }
            }

        }

    }
}

 

package myThread;

public class SDemo {
    public static void main(String[] args) {
        SellTicket st = new SellTicket();
        Thread t1 = new Thread(st,"窗口1");
        Thread t2 = new Thread(st,"窗口2");
        Thread t3 = new Thread(st,"窗口3");

        t1.start();
        t2.start();
        t3.start();
    }

}

 

标签:同步,java,Thread,卖票,代码,SellTicket,new,多线程
来源: https://blog.csdn.net/qq_34608447/article/details/115314331