请举例说明Java中的线程同步(如synchronized关键字)是如何工作的。

原创 柔情只为你懂 2025-03-19 17:54 42阅读 0赞

在Java中,线程同步主要用于防止多个线程同时访问和修改共享资源,从而导致数据不一致或竞态条件等问题。

synchronized关键字就是一个典型的线程同步手段。它通常用于修饰类的方法、代码块或者是声明锁的变量。

例如:

  1. class Counter {
  2. private int count = 0;
  3. public synchronized void increment() {
  4. count++;
  5. notifyAll(); // 向等待的线程发出通知
  6. }
  7. public synchronized void decrement() {
  8. if (count > 0) {
  9. count--;
  10. notifyAll(); // 向等待的线程发出通知
  11. }
  12. }
  13. public synchronized int getCount() {
  14. return count;
  15. }
  16. }

在这个例子中,Counter类中的方法都使用了synchronized关键字。这样,同一个时间只能有一个线程访问这些方法。

当一个线程调用increment方法并获取锁后,它会增加count变量的值,并向等待该操作完成的其他线程发出通知。

这种方式保证了数据的一致性和完整性,避免了竞态条件问题。

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

发表评论

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

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

相关阅读