0

我只是一个初学者并尝试学习 Java

目标 - 尝试在 java 中创建几个流,我的程序必须创建 3 个流和 1 个主流,然后停止。

做了什么:

使用已实现的 Runnable 创建类

class NewThread implements Runnable {
String name;
Thread t;

NewThread(String threadname){
    name = threadname;
    t = new Thread (this, name);
    System.out.println(t);
    t.start();
}

public void run (){
    try {
        System.out.println("111");// why cant see it?
        Thread.sleep(1000);
    }
    catch (InterruptedException e){
        System.out.println(e);
    }
    System.out.println("End Thread");
}

主要:

 public class ThreadDemo {
 public static void main (String []args){
    new Thread ("F");
    new Thread ("S");
    new Thread ("T");

    try {
        Thread.sleep(10000);
    }
    catch (InterruptedException e){

    }
    System.out.println("End M");
}
}

我想我会得到像 3 串 111 和一串 End M 这样的结果 -

111
111
111
End M

但我只是

 End M

谁能说为什么我的程序结果没有得到 3 个字符串?

非常感谢所有人。

4

4 回答 4

2

您需要创建NewThread实例而不是通用Threads代码才能执行:

new NewThread("F");
...
于 2013-03-04T19:30:25.013 回答
1

new Thread ("F");创建一个Thread名为“F”的新对象,它与您的NewThread对象之一不同。您永远不会创建任何这些,因此您不应该期望他们的任何代码运行。此外,ThreadRunnable. 相反,您应该创建一个Runnable,然后创建一个Thread来保存您Runnablestart()的和Thread. Java Concurrency 教程可能会帮助您理清思路。

于 2013-03-04T19:33:12.810 回答
0

使用以下内容public static void main

NewThread th1 = new NewThread ("F");
NewThread th2 = new NewThread ("S");
NewThread th3  =new NewThread ("T");
于 2013-03-04T19:30:17.923 回答
0

找出我的错误

我必须写

public static void main (String []args){
    new NewThread ("F");
    new NewThread ("S");
    new NewThread ("T");

代替

 new Thread ("F");

现在好啦。

于 2013-03-04T19:33:57.060 回答