gpt4 book ai didi

java - 并发-如何启动一个线程,然后启动另一个线程,并且当线程 2 运行时第一个线程保持运行?

转载 作者:行者123 更新时间:2023-12-02 06:24:26 24 4
gpt4 key购买 nike

我想先启动log,会记录运行步骤,时间比较长。但其他线程在日志完成之前不会启动。有什么技术可以解决我的问题吗?实际上我已经阅读了一些关于 CyclicBarrier 和 CountDownLatch 的示例代码。但我不确定应该使用哪个类。

最后,我找到了方法,并且成功了!

public boolean execute(ExecuteArguments args)
{

Thread logcat = new Thread(new LogCatsStart());
Thread runner = new Thread(new TestCaseStart());
logcat.start();
runner.start();
try
{
logcat.join();
runner.join();
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;

}

class LogCatsStart implements Runnable
{

@Override
public void run()
{
tag = String.format("%s_%s_%s_%s", Utilities.getCurrentTime("MM-dd_hh-mm-ss"),
testCaseName, "Iteration", iteration);
collectLogCat();
System.out.println("Done");

}
}

class TestCaseStart implements Runnable
{

@Override
public void run()
{
executeTest();

}
}

最佳答案

从给出的描述来看,我认为您可以在同一个线程中继续操作,如果第一个线程结束,则无需启动第二个线程。

如果您不需要停止日志记录,您可以在两者之间共享一个 CountDownLatch 并在日志记录时在第一个线程中执行 latch.countDown()在第二个线程的最开始处完成并 latch.await()

关于java - 并发-如何启动一个线程,然后启动另一个线程,并且当线程 2 运行时第一个线程保持运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20691839/

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