仔细看看,你自己定义的ThreadTest类有带参(而且参数类型是 ThreadTest类 )的构造方法么???有start()方法么???
正确的写法:将 new ThreadTest(t).start(); 改成---
new Thread(t).start();
解释一下:Thread(线程类)有一个构造方法,参数类型为Runnable,而你的ThreadTest类实现了Runnable接口,所以可以作为Thread类的构造方法的参数..
LZ,你的错误在: new ThreadTest(t).start();
一楼的也写错了!囧………………
应该这样:
ThreadTest t = new ThreadTest();
new Thread(t).start();
修改后代码为:
public class test1 {
public static void main(String[] args) {
ThreadTest t = new ThreadTest();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}
class ThreadTest implements Runnable {
private int tickeds = 100;
public void run() {
while (true) {
if (tickeds > 0)
System.out.println(Thread.currentThread().getName()
+ " is saling tickeds " + tickeds--);
}
}
}
new ThreadTest(t).start();
LZ仔细看一下这个代码,是向ThreadTest()类里传递一个t(“ThreadTest()”)参数。
你的ThreadTest()里有这个构造方法吗?没有吧,所以报错。
可以直接t.start();
就代码来看,确实是有错误啊,new ThreadTest(t).start();
这句编译就应该出错了吧。
应该是这样的吧:
ThreadTest t=new ThreadTest();
t.start();
ThreadTest 类中,你没有这个带参数的构造函数啊。肯定会报错啦。。。。好好学学基础吧。。