java线程同步问题的解决及实例
时间: 2023-10-06 22:06:02 浏览: 77
Java中的线程同步问题通常可以通过使用synchronized关键字来解决。具体来说,可以使用synchronized关键字来声明一个方法或代码块,以确保在同一时间只有一个线程可以访问该方法或代码块。
下面是一个使用synchronized关键字来解决线程同步问题的示例代码:
```java
public class MyThread implements Runnable {
private int count = 0;
public synchronized void increment() {
count++;
}
public void run() {
for (int i = 0; i < 10000; i++) {
increment();
}
}
public static void main(String[] args) {
MyThread myRunnable = new MyThread();
Thread thread1 = new Thread(myRunnable);
Thread thread2 = new Thread(myRunnable);
thread1.start();
thread2.start();
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(myRunnable.count);
}
}
```
在上面的示例代码中,我们声明了一个increment()方法,并使用synchronized关键字来确保在同一时间只有一个线程可以访问该方法。然后,我们创建了两个线程来执行这个方法,并使用join()方法等待这两个线程的执行完成。最后,我们输出了计数器的值。
这样,我们就解决了线程同步问题,并且确保了在多个线程访问同一方法时的正确性。
阅读全文