下面是一个简单的Java代码示例,演示了多线程调用同一个方法的情况:

public class MultiThreadExample {
    public static void main(String[] args) {
        MyRunnable runnable = new MyRunnable(); // 创建一个Runnable对象

        // 创建并启动多个线程
        Thread thread1 = new Thread(runnable);
        Thread thread2 = new Thread(runnable);
        Thread thread3 = new Thread(runnable);

        thread1.start();
        thread2.start();
        thread3.start();
    }
}

class MyRunnable implements Runnable {
    public void run() {
        synchronized(this) { // 使用对象锁
            for (int i = 0; i < 5; i++) {
                System.out.println(Thread.currentThread().getName() + " is running");
            }
        }
    }
}

在这个例子中,我们创建了一个MyRunnable类实现了Runnable接口,并实现了run方法。在run方法中,我们使用synchronized关键字来获取对象锁,确保每次只有一个线程可以执行这段代码块。

然后,我们在MultiThreadExample类中创建了一个MyRunnable对象,并将其传递给三个线程。每个线程都会调用run方法。

由于我们使用了对象锁,每个线程在执行run方法时都会先获取到对象锁,然后才能执行代码块。这样就确保了每个线程在执行代码块时是互斥的,不会产生数据竞争或并发问题。

运行以上代码,你会看到三个线程交替执行run方法的输出

JAVA 代码模拟多线程调用同一个方法

原文地址: https://www.cveoy.top/t/topic/ibzW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录