java - 当其他线程访问同步块(synchronized block)时,一个线程等待多长时间?

标签 java multithreading synchronized thread-synchronization

线程可以等待,直到其他线程释放访问同步块(synchronized block)的锁。 我想知道当其他线程访问同步块(synchronized block)时一个线程可以等待多长时间?什么时候它才会知道另一个线程释放了锁?

最佳答案

如果变量lock已在一个线程中同步,则所有其他尝试使用lock进行同步的线程都将被阻塞,直到lock不再同步。

//all other threads waiting on thread 1...
synchronized(lock)
{
    //thread 1 storing digits of pi into linked list... or whatevs.
}

正如其他人所说,线程将无限期地等待变量空闲以进行同步。

关于java - 当其他线程访问同步块(synchronized block)时,一个线程等待多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18494399/

相关文章:

java - 将函数作为静态类传递以实现 Java 中的快速数字

jvm - JVM、JDK、JRE、JIT的层次结构是怎样的?

java - 对于可变引用字段中的不可变类型,使用 volatile 并本地缓存还是同步?

ios - 线程(异步队列)在 Swift 中是如何工作的?

java - 为所有线程锁定对象?

java - SQLite内存不足异常

java - 哪种 Java 设计模式适合下面描述的情况?

java - 当我启动应用程序时尝试获取 Android_ID 崩溃

java - 多线程环境下如何避免同步?

java - 如何创建生产者/消费者线程模式?