请编写一个有同步块的Java多线程代码
这里是一个简单的Java多线程代码段,使用同步块来确保线程安全:
public class SynchronizedThread implements Runnable {
private int count;
public void run() {
synchronized (this) {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + ": " + count);
count++;
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
SynchronizedThread synchronizedThread = new SynchronizedThread();
Thread thread1 = new Thread(synchronizedThread);
Thread thread2 = new Thread(synchronizedThread);
thread1.start();
thread2.start();
}
}
在这个例子中,我们创建了一个名为SynchronizedThread的类,它实现了Runnable接口,并覆盖了run()方法。在run()方法中,我们使用同步块来确保线程安全。synchronized关键字将代码块标记为同步,并使用this作为互斥锁对象。
我们还创建了两个线程thread1和thread2,它们共享同一个SynchronizedThread实例,并同时运行。由于我们使用了同步块,这两个线程在访问共享变量count时不会发生竞争条件
原文地址: https://www.cveoy.top/t/topic/frTo 著作权归作者所有。请勿转载和采集!