ThreadWorker 当我使用方法引用在Thread的构造函数中创建新对象或传递Lambda以创建新对象时,不执行。
但是,当我ThreadWorker单独创建对象并将其传递给Thread类时,它可以正常工作。
public class RunnableImpl {
public static void main(String[] args) throws InterruptedException {
ThreadWorker th= new ThreadWorker();
Thread t1 = new Thread(th);
t1.start();
t1.join();
System.out.println("Main method terminated");
}
}
class ThreadWorker implements Runnable {
@Override
public void run() {
int[] arr = { 1, 4, 8, 9, 1, 0, 4, 5, 4 };
System.out.println(Arrays.stream(arr).sum());
}
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我使用lambda:
Thread t1 = new Thread(ThreadWorker :: new);
Run Code Online (Sandbox Code Playgroud)
要么
Thread t1 = new Thread(() ->new ThreadWorker());
Run Code Online (Sandbox Code Playgroud)
则没有输出,但是如果我ThreadWorker单独创建对象,则程序运行正常。
有人可以让我知道,怎么可能?
public class Try {
public static void main(String[] args) {
int i=0;
while(i<10)
{
System.out.println("Hello World");
if (i==6)
{
// The Execution pointer should go back to this statement (int i=0);
}
i++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我们goto在VB中使用关键字将执行指针放在特定的语句集上.请告诉我在Java中这是如何实现的.我们如何将执行指针放在特定的语句集上?