gpt4 book ai didi

java线程阻塞

转载 作者:行者123 更新时间:2023-11-29 08:19:33 25 4
gpt4 key购买 nike

从同步方法调用的非同步方法是否允许线程阻塞?

public synchronized void foo(){
someStuff();
someMoreStuff();
bar();
}

public void bar(){
//... does some things
}

如果一个线程正在执行 foo(),是否可以确保在线程 hibernate 之前调用 bar()?

TIA

最佳答案

一个线程总是可以被抢占(在 Java 中没有办法阻止这种情况)但是在 foo 返回之前没有其他线程能够获取同一对象上的锁。

请注意,“失去 CPU”的线程通常不是“阻塞”的意思 - 通常,如果调用需要等待其他事情发生,则调用被视为阻塞。例如:

  • 从流中读取 block ,直到有一些数据可用(或到达流的末尾)
  • 获取锁 block ,直到锁可用

这些与刚用完时间片非常不同。

关于java线程阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1279394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com