zoukankan      html  css  js  c++  java
  • 多线程-同步函数

    在上文的并发卖票中使用的同步代码块保证数据安全,也可以采用下面方式(同步函数):

    package test;
    
    /**
     * author:songyan
     * date: 2019/11/10
     **/
    public class demo1 {
        public static void main(String[] args) {
            Tickert t = new Tickert();
            Thread t1 = new Thread(t);
            Thread t2 = new Thread(t);
            Thread t3 = new Thread(t);
            Thread t4 = new Thread(t);
    
            t1.start();
            t2.start();
            t3.start();
            t4.start();
        }
    }
    
    class Tickert implements Runnable {
        private int number = 100;//一共一百张票
        Object obj = new Object();
    
        @Override
        public void run() {
            while (true) {
                show();
            }
        }
    
        public void show() {
            if (number > 0) {
                System.out.println("ticket   " + number--);
            }
        }
    }

    在非静态的同步函数中,锁是this。

    在静态同步函数中,锁是Class对象。

  • 相关阅读:
    SPOJ NDIV
    SPOJ ETF
    SPOJ DIVSUM
    头文件--持续更新
    SPOJ FRQPRIME
    SPOJ FUNPROB
    SPOJ HAMSTER1
    观光
    最短路计数
    拯救大兵瑞恩
  • 原文地址:https://www.cnblogs.com/excellencesy/p/11830482.html
Copyright © 2011-2022 走看看