我有一个可以被多个线程访问的类。我希望该类在响应调用(getSomething)之前先做一些事情。
我当时想开始在类构造函数中启动SampleThreadinside,但我不喜欢在构造函数中启动线程的想法。
我正在考虑做这样的事情,但是我不确定这是否正确。将在类上调用getSomething的第一个线程将启动一个线程。
但是我仍然不确定这是否正确。。我担心多个SampleThread会运行,而我只希望它运行一次。
public class A{
private final AtomicBoolean isReady = new AtomicBoolean(false);
public A{
}
public void getSomething(){
if(!isReady.get()){
new SampleThread().start();
}
//continue with the rest of the method
}
}
public class SampleThread{
public void run(){
//Do some long running task once done
isReady.set(true);
}
}
我没有办法添加一个名为start()的方法,在该方法中我可以调用我的SampleThread,因为该方法是由框架调用的。
有什么提示吗?
小唯快跑啊
相关分类