Java多线程同步问题示例
在Java中,多线程的同步主要是通过synchronized关键字、wait/notify方法以及原子变量等机制来实现。
以下是一个简单的多线程同步问题示例:
// 创建一个共享资源(比如一个计数器)
int sharedResource = 0;
// 创建两个线程,分别对资源进行操作
Thread thread1 = new Thread(() -> {
// 对资源进行操作,这里简单地加一
synchronized (sharedResource) {
sharedResource++;
}
}));
Thread thread2 = new Thread(() -> {
// 对资源进行操作,这里简单地减一
synchronized (sharedResource) {
sharedResource--;
}
});
// 启动线程
thread1.start();
thread2.start();
// 等待所有线程执行完毕(在这里主要是等待thread2完成)
thread2.join();
// 这时,共享资源的值应该是正确的,如果没有,那么问题就出在同步机制上。
以上示例简单地展示了如何通过synchronized关键字实现多线程对共享资源的同步操作。
还没有评论,来说两句吧...