// Java 同步方法示例
class Counter {
// 私有变量,用于计数
private int count = 0;
// 同步方法,确保在多线程环境下对 count 的操作是线程安全的
public synchronized void increment() {
count++;
}
// 获取当前计数值
public int getCount() {
return count;
}
}
public class Main {
public static void main(String[] args) throws InterruptedException {
// 创建一个 Counter 实例
Counter counter = new Counter();
// 创建两个线程,分别调用 increment 方法
Thread t1 = new Thread(() -> {
for (int i = 0; i < 1000; i++) {
counter.increment();
}
});
Thread t2 = new Thread(() -> {
for (int i = 0; i < 1000; i++) {
counter.increment();
}
});
// 启动两个线程
t1.start();
t2.start();
// 等待两个线程执行完毕
t1.join();
t2.join();
// 输出最终的计数值
System.out.println("Final count: " + counter.getCount());
}
}
Counter 类中有一个私有变量 count,用于记录计数值。increment() 方法被声明为 synchronized,这意味着在同一时间只能有一个线程可以执行这个方法。这确保了在多线程环境下对 count 的操作是线程安全的。Main 类中,我们创建了两个线程 t1 和 t2,它们分别调用 increment() 方法 1000 次。由于 increment() 是同步方法,因此即使两个线程同时运行,count 的值也不会出现竞争条件,最终结果应该是 2000。上一篇:java执行js脚本
下一篇:java和c语言
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站