gpt4 book ai didi

java - java中的阻塞

转载 作者:太空宇宙 更新时间:2023-11-04 12:46:51 25 4
gpt4 key购买 nike

我有一个应用程序,我需要阻止所有网络 Activity ,直到一个特定进程完成。之后,所有线程都应该可以自由地执行其网络 Activity 。阻止对我来说是一个弱点,我不确定我是否做得对。我相信我所拥有的将会起作用,但我的直觉告诉我我不应该这样做。

public static class BlockingClass implements ReentrantLock
{
private static BlockingClass sBlockingClass = new BlockingClass();

static
{
sBlockingClass.lock();
}


public void ProcessThatNeedsToWait()
{
while(sBlockingClass.isLocked());

Continue();
}


public void ProcessThatNeedsToBeWaitedFor()
{
DoInitWork();

sBlockingClass.unlock();
}
}

最佳答案

现在您正在使用“忙等待”和“while(...) continue”
更好的解决方案可能是将您的任务实现为可运行的并且将它们放在一个管理器类中,将回调传递给第一个任务,并在回调返回遍历列表并使用其自己的线程启动每个可运行任务时将每个新任务添加到管理器内的列表中(即回调尚未返回)。
当然,该解决方案仅适用于我从您所面临的问题中可以理解的内容,以防万一它不适合添加一些更多详细信息\代码,以便我可以更好地理解您要解决的问题。

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

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