将任务分配给Thread并从方法返回。例如

时间:2015-02-18 07:25:47

标签: java

public class MyThreadExample {

    public static void main(String[] args) {

        MyThreadExample myThreadExample = new MyThreadExample();
        String country= myThreadExample.getCountry();
        System.out.println(country);
    }
    public String getCountry() {
     /* Question : */
     return "India";
    }
    public void printValues() {

        for(int i = 0 ; i < 200; ++i) {
            System.out.println(i);
        }
    }
}

标签问题:我想调用printValues()方法并立即从这个方法返回,我可以在这里使用线程来调用printValue()

4 个答案:

答案 0 :(得分:0)

最简单在新线程中运行某些代码的方法,假设你有一个Java 8编译器:

new Thread(() -> {
    printValues();
}).start();

或假设您没有Java 8编译器:

new Thread() {
    @Override
    public void run() {
        printValues();
    }
}).start();

但请注意,这可能无法达到您想要的效果。

(有些人会建议使用Executor;当你只有一个任务要运行时,行为没有区别,但Executor会增加更多的复杂性)

答案 1 :(得分:0)

你可以用这种方式重写你的printValues()方法,在方法中启动一个线程来执行你想要的东西。

public void printValues() {
    Thread t = new Thread(new Runnable() {  
        @Override
        public void run() {
            for (int i = 0 ; i < 200; ++i) {
                System.out.println(i);
            }
        }
    });
    t.start();
}

答案 2 :(得分:0)

答案 3 :(得分:0)

是的,您肯定可以使用主题,我更喜欢ExecutorService机制,

以下是您的操作方法:

ExecutorService executorService = Executors.newFixedThreadPool(10);

executorService.execute(new Runnable() {
    public void run() {
        for(int i = 0 ; i < 200; ++i) {
        System.out.println(i);
    }
    }
});

executorService.shutdown();