26 lines
608 B
Java
26 lines
608 B
Java
package chapter2;
|
|
|
|
import common.TestHarness;
|
|
import org.junit.Test;
|
|
|
|
public class LazyInit {
|
|
private ExpensiveObject expensiveObject = null;
|
|
|
|
public ExpensiveObject getInstance() {
|
|
if (expensiveObject == null) {
|
|
expensiveObject = new ExpensiveObject();
|
|
}
|
|
return expensiveObject;
|
|
}
|
|
|
|
@Test
|
|
public void test() {
|
|
TestHarness testHarness = new TestHarness(8);
|
|
LazyInit lazyInit = new LazyInit();
|
|
|
|
testHarness.testMultiThreaded(() -> {
|
|
testHarness.waitForSignal();
|
|
lazyInit.getInstance();
|
|
});
|
|
}
|
|
}
|