JAVA 代码模拟多线程调用同一个方法
下面是一个简单的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方法的输出
原文地址: https://www.cveoy.top/t/topic/ibzW 著作权归作者所有。请勿转载和采集!