zoukankan      html  css  js  c++  java
  • Java进阶知识查漏补缺02

    通过继承Thread方式创建线程后处理共享资源问题:

    package com.cjf.Thread;
    
    /**
     * Created with IntelliJ IDEA.
     * Description:
     * Author: Everything
     * Date: 2020-07-01
     * Time: 16:23
     */
    
    class Window extends Thread{
        //此时必须引入静态,让三个线程实例共用一个变量
        //一提到共享问题,就要想到静态
        private static int ticket=100;
    
        @Override
        public void run() {
            while (true){
                if (ticket > 0){
                    ticket--;
                    System.out.println(Thread.currentThread().getName()+"售出车票,余票为"+ticket);
    
                }else {
                    break;
                }
            }
        }
    }
    
    
    
    
    public class WindowTest {
        public static void main(String[] args) {
            Window window1 = new Window();
            Window window2 = new Window();
            Window window3 = new Window();
            window1.setName("售票窗口一");
            window2.setName("售票窗口二");
            window3.setName("售票窗口三");
            window1.start();
            window2.start();
            window3.start();
        }
    
    }

     

    通过实现Runnable接口方式创建线程后处理共享资源问题:

    package com.cjf.Thread;
    
    /**
     * Created with IntelliJ IDEA.
     * Description:
     * Author: Everything
     * Date: 2020-07-01
     * Time: 17:07
     */
    
    
    class Window2 implements Runnable{
    
        private  int ticket=100;
        @Override
        public void run() {
            while (true){
                if (ticket > 0){
                    ticket--;
                    System.out.println(Thread.currentThread().getName()+"售出车票,余票为"+ticket);
    
                }else {
                    break;
                }
            }
        }
        }
    
    public class WindowTest1 {
        public static void main(String[] args) {
            Window2 window21 = new Window2();
            Thread thread1 = new Thread(window21);
            Thread thread2 = new Thread(window21);
            Thread thread3 = new Thread(window21);
            thread1.setName("一号售票口");
            thread2.setName("二号售票口");
            thread3.setName("三号售票口");
            thread1.start();
            thread2.start();
            thread3.start();
    
    
        }
    }
  • 相关阅读:
    CF961E Tufurama 主席树
    [BZOJ3638 && BZOJ3272]带修区间不相交最大K子段和(线段树模拟费用流)
    [BZOJ5294][BJOI2018]二进制(线段树)
    [BZOJ5293][BJOI2018]求和(倍增)
    [BZOJ5306][HAOI2018]染色(容斥+FFT)
    [BZOJ5303][HAOI2018]反色游戏(Tarjan)
    [CF1053C]Putting Boxes Together(线段树)
    整体二分
    JSOI2018R2题解
    LCT维护子树信息
  • 原文地址:https://www.cnblogs.com/cuijunfeng/p/13222380.html
Copyright © 2011-2022 走看看