【问题标题】:Java - Using a Reentrant lock with Multi-ThreadingJava - 使用多线程的可重入锁
【发布时间】:2017-02-07 20:13:24
【问题描述】:

我正在编写一个多线程程序,我想使用锁。问题是程序在一个线程上运行,我想要一个线程来获取锁,暂停第一个线程,然后在从第三个线程调用方法时解锁它。我尝试了很多不同的东西,但都没有奏效。我该怎么做?

编辑:

改写问题

【问题讨论】:

  • 一个对象不锁,一个线程锁。
  • @SotiriosDelimanolis 锁lock.lock() 使线程获取锁,然后下一个尝试获取锁的线程必须等到锁被lock.unlock() 释放
  • 哪个线程执行lock.lock()?
  • @SotiriosDelimanolis 控制。看代码
  • No. 假设您指的是control.lock();,那么您是从ControlThread object 调用lock 方法,但这不是执行该代码的 thread。执行代码的线程对应于program引用的Thread对象。

标签: java multithreading locking


【解决方案1】:

据我了解,您希望一个线程休眠并等待来自另一个线程的通知。您应该查看Observer and Observable 而不是锁定。

【讨论】:

    猜你喜欢
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多