Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于JAVA多线程:如何使用extends Thread创建进程并实现Runnable_Java_Multithreading - Fatal编程技术网

关于JAVA多线程:如何使用extends Thread创建进程并实现Runnable

关于JAVA多线程:如何使用extends Thread创建进程并实现Runnable,java,multithreading,Java,Multithreading,当我读《用JAVA思考》一书时,我发现了一个关于JAVA多线程的问题 class ThreadMethod { private int countdown = 5; private Thread t; private String name; public ThreadMethod(String name) { this.name = name; } public void runTask() { if

当我读《用JAVA思考》一书时,我发现了一个关于JAVA多线程的问题

    class ThreadMethod {
    private int countdown = 5;
    private Thread t;
    private String name;

    public ThreadMethod(String name) {
        this.name = name;
    }

    public void runTask() {
        if (t == null) {
            t = new Thread(name) {
                public void run() {
                    while (true) {
                        System.out.println(this);
                        if (--countdown == 0) return;
                        try {
                            sleep(10);
                        } catch (InterruptedException e) {
                            System.out.println("interrupted");
                        }
                    }
                }

                public String toString() {
                    return getName() + ": " + countdown;
                }
            };
            t.start();
        }
    }
}

public class ThreadVarations{
    public static void main(String[] args) {
        for(int i=0;i<10;i++)
        new ThreadMethod("ThreadMethod").runTask();
    }
}
类线程方法{
私人整数倒计时=5;
私有线程t;
私有字符串名称;
公共线程方法(字符串名称){
this.name=名称;
}
public void runTask(){
如果(t==null){
t=新线程(名称){
公开募捐{
while(true){
System.out.println(本文件);
如果(--倒计时==0)返回;
试一试{
睡眠(10);
}捕捉(中断异常e){
系统输出打印项次(“中断”);
}
}
}
公共字符串toString(){
返回getName()+“:”+倒计时;
}
};
t、 start();
}
}
}
公共类线程变量{
公共静态void main(字符串[]args){

对于(int i=0;i您需要使用实现Runnable的给定类启动一个新线程并对其调用start,方法
run()
将在另一个线程中调用

new Thread(new ThreadMethod).start();

你跳过了关于匿名类的章节吗?看看
新线程(名称){public void run(){…}}
。我不知道如何描述我的情绪。这是一个非常低级的错误。事实上,当我问这个问题时,我意识到我错了。我错过了“线程t private”。