小编Ati*_*ain的帖子

在线程中使用Lambda

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单独创建对象,则程序运行正常。

有人可以让我知道,怎么可能?

java multithreading

1
推荐指数
1
解决办法
66
查看次数

如何在Java中跳过一组特定的语句

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中这是如何实现的.我们如何将执行指针放在特定的语句集上?

java

0
推荐指数
1
解决办法
7995
查看次数

标签 统计

java ×2

multithreading ×1