package com.lyon.demo.test.mayi; public class Demo4 { public static void main(String[] args) { ThreadTrain4 th = new ThreadTrain4(); Thread thread = new Thread(th); Thread thread1 = new Thread(th); Thread thread2 = new Thread(th); thread.start(); thread1.start(); thread2.start(); } } /** * 功能描述:(多线程之买火车票案例-使用多线程同步代码解决线程安全问题) */ class ThreadTrain4 implements Runnable{ private static int count = 100; // 自定义多线程同步锁 private Object mutex = new Object(); @Override public void run() { //同步锁放在这个位置,只能有一个线程执行 //synchronized (mutex){ while (count > 0) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } sale(); } } //静态方法加锁 ThreadTrain4.class 或者getClass()方法 public static void sale() { synchronized
多线程之静态方法加锁-复习篇
最新推荐文章于 2022-04-17 16:58:53 发布
本文通过一个买火车票的案例,介绍如何在Java中使用多线程同步解决线程安全问题。重点讲解了静态方法加锁的方式,包括使用`ThreadTrain4.class`作为同步锁,并在同步块内进行逻辑判断和操作,确保线程的正确执行顺序。
摘要由CSDN通过智能技术生成