关于JAVA多线程:如何使用extends Thread创建进程并实现Runnable
当我读《用JAVA思考》一书时,我发现了一个关于JAVA多线程的问题关于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
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”。