CompletableFuture我想模拟当 a成功完成时正在调用一些代码。
我有这门课:
public class MyClassImplementRunner implements Runnable {
private final String param1;
public MyClassImplementRunner(String param1) {
this.param1 = param1;
}
public static CompletableFuture<Void> startAsync(String param1) {
return CompletableFuture.runAsync(
new MyClassImplementRunner(param1)).whenComplete(
(response, throwable) -> {
//some code when complete
});
@Override
public void run () {
//the runnable code
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的 Junit 中(使用 Mockito 和 Java 8),我需要模拟它
//some code when complete
Run Code Online (Sandbox Code Playgroud)
当 Future 成功完成时调用。
您能否提供一些关于如何实现这一目标的指示?
我很难理解同步如何在同一个对象的两个不同方法上工作.我有一个类,有两个声明为synchronized的实例方法.三个线程访问此对象的两个同步方法,但结果是意外的.线程可以互换地访问这两种方法.它们不等待释放整个对象的锁定.这是样本:
public class ThreadSafeCounterSameMonitor2 {
private int value;
public synchronized int getValue() {
return this.value;
}
public synchronized void setValue(int value) {
this.value = value;
}
public static void main(String[] args) {
ThreadSafeCounterSameMonitor2 nts = new ThreadSafeCounterSameMonitor2();
Thread th1 = new Thread(new Runnable() {
public void run() {
nts.setValue(5);
System.out.println("Thread Id " + Thread.currentThread().getId() + ", expected value is 5, value=" + nts.getValue());
}
});
Thread th2 = new Thread(new Runnable() {
public void run() {
nts.setValue(10);
System.out.println("Thread Id " …Run Code Online (Sandbox Code Playgroud)