匿名线程不是通过runnable的run方法

时间:2016-09-15 12:53:33

标签: java multithreading

我是线程的新手,正在经历一些匿名线程示例

在我的下面的程序中,我正在创建一个runnable并将其传递给一个匿名线程。但是当我启动线程时,它不会执行我正在传递的runnable的run()方法。请纠正我,因为我错了。

public class Anonymous {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Runnable task = new Runnable(){
            public void run() {
                System.out.println("Thread started");
            };
        };

        Anonymous1 ab = new Anonymous1();
        ab.setRunnableandStart(task); // passing runnable to other class


    }

}

public class Anonymous1 {
private Runnable runnable = null;

private Thread exeThread = null;
    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }
 public void setRunnableandStart(Runnable runnable)
 {
     this.runnable = runnable; // setting the runnable
     exeThread = startExecution();
     System.out.println("Returned");
 }

 private Thread startExecution()
 {
      Thread ret = new Thread(runnable){

     };
     ret.start(); // starting the thread
     return ret;
 }
}

3 个答案:

答案 0 :(得分:0)

我认为你想要的是

private Thread startExecution()
 {
     Thread ret = new Thread(runnable);
     ret.start(); // starting the thread
     return ret;
 }

答案 1 :(得分:0)

更改

Thread ret = new Thread(runnable){

     };

Thread ret = new Thread(runnable);

答案 2 :(得分:0)

添加一些System.out.println (..)以查看正在执行的代码。因为我不清楚哪个main方法是你的实际入口点(你有两个)...而且其中一个没有做任何事情。