zoukankan      html  css  js  c++  java
  • java多线程快速入门(十一)

    在方法上面加synchonizd用的是this锁

    package com.cppdy;
    
    class MyThread7 implements Runnable {
    
        private Integer ticketCount = 100;
        public boolean falg = true;
    
        @Override
        public void run() {
            if (falg) {
                synchronized (this) {
                    while (ticketCount > 0) {
                        try {
                            Thread.sleep(50);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        System.out.println(Thread.currentThread().getName() + "卖出了第:" + (100 - ticketCount + 1) + "张票。");
                        ticketCount--;
                    }
                }
            } else {
                while (ticketCount > 0) {
                    sale();
                }
            }
        }
    
        public synchronized void sale() {
            if (ticketCount > 0) {
                try {
                    Thread.sleep(50);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName() + "卖出了第:" + (100 - ticketCount + 1) + "张票。");
                ticketCount--;
            }
        }
    }
    
    public class ThreadDemo7 {
    
        public static void main(String[] args) throws Exception {
            MyThread7 mt = new MyThread7();
            Thread thread1 = new Thread(mt, "窗口1");
            Thread thread2 = new Thread(mt, "窗口2");
            thread1.start();
            Thread.sleep(30);
            mt.falg = false;
            thread2.start();
        }
    
    }

  • 相关阅读:
    WordPress让文本小工具支持简码
    修改WordPress后台登录地址,提高安全性
    WordPress用键盘左右方向键来查看上一篇和下一篇文章
    Git 补丁操作
    Git 标签操作
    Git 修正错误
    Git 删除操作
    Git 重命名操作
    Git 移动操作
    Git 藏匿操作
  • 原文地址:https://www.cnblogs.com/jiefu/p/10015666.html
Copyright © 2011-2022 走看看