1. 首页
  2. Java

java多线程synchronized同步方法示例

案例:请按要求编写多线程应用程序,模拟多个人通过一个山洞:

​ 1、这个山洞每次只能通过一个人,每个人通过山洞的时间为5秒;

​ 2、随机生成10个人,同时准备过此山洞

​ 3、定义一个变量用于记录通过隧道的人数

​ 4、显示每次通过山洞人的姓名,和通过顺序;

public class TestTunnel {
  public static void main(String[] args) {
    Runnable runnable = new Tunnel();
    Thread thread = null;
    for (int i = 0; i < 10; i++) {
      thread = new Thread(runnable, “线程”+ i);
      thread.start();
    }
  }
}

public class Tunnel implements Runnable{
  private static int num = 0;

  @Override
  public void run() {
    TakeTunnel();

  }

  public synchronized void TakeTunnel() {
    try {
      System.out.println(Thread.currentThread().getName() + “开始通过隧道”);
      Thread.sleep(5000);
      num ++;
      System.out.println(Thread.currentThread().getName() + “第” + num + “个通过隧道”);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}

本文来自投稿,不代表程序员编程网立场,如若转载,请注明出处:http://www.cxybcw.com/188468.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code