Java多线程同步问题示例

原创 本是古典 何须时尚 2024-09-16 22:48 314阅读 0赞

在Java中,多线程的同步主要是通过synchronized关键字、wait/notify方法以及原子变量等机制来实现。

以下是一个简单的多线程同步问题示例:

  1. // 创建一个共享资源(比如一个计数器)
  2. int sharedResource = 0;
  3. // 创建两个线程,分别对资源进行操作
  4. Thread thread1 = new Thread(() -> {
  5. // 对资源进行操作,这里简单地加一
  6. synchronized (sharedResource) {
  7. sharedResource++;
  8. }
  9. }));
  10. Thread thread2 = new Thread(() -> {
  11. // 对资源进行操作,这里简单地减一
  12. synchronized (sharedResource) {
  13. sharedResource--;
  14. }
  15. });
  16. // 启动线程
  17. thread1.start();
  18. thread2.start();
  19. // 等待所有线程执行完毕(在这里主要是等待thread2完成)
  20. thread2.join();
  21. // 这时,共享资源的值应该是正确的,如果没有,那么问题就出在同步机制上。

以上示例简单地展示了如何通过synchronized关键字实现多线程对共享资源的同步操作。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,314人围观)

还没有评论,来说两句吧...

相关阅读