Java多线程并发问题:锁、信号量和条件变量的应用示例

原创 今天药忘吃喽~ 2024-11-25 05:21 165阅读 0赞

在Java中,线程同步主要通过以下几种机制实现:

  1. 锁(Synchronized):

    1. class Counter {
    2. private int count = 0;
    3. public synchronized void increment() {
    4. count++;
    5. }
    6. public synchronized int decrement() {
    7. if (count > 0) {
    8. count--;
    9. return count;
    10. }
    11. throw new IllegalStateException("Counter is already at zero");
    12. }
    13. public synchronized int getCount() {
    14. return count;
    15. }
    16. }
  2. 信号量(Semaphore):
    Java标准库没有直接提供信号量,但可以通过CountDownLatchCyclicBarrier等类间接实现。

  3. 条件变量(Condition):
    条件变量是与锁一起使用的同步工具。它们允许一个线程等待另一个线程满足特定条件后才能继续执行。

以上就是Java中锁、信号量和条件变量的简单应用示例。

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

发表评论

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

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

相关阅读