基础不太好,所以学的有些莫名其妙。
事情是这样的。public class ThreadDemo4
{
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 extends Thread
{
private int i=100;
public void run()
{
while(i>0)
{
System.out.println(Thread.currentThread().getName()+
" thread is sell ticket "+i--);
}
}
}这段程序如果把6。7。8。9行写成
new ThreadTest(t).start();
就出错。这是什么道理,书上说Thread.start()调用的是ThreadTest的RUN()函数。那么new ThreadTest(t).start();调用的是什么函数?不也是START吗?
谢谢各位前辈指点。
事情是这样的。public class ThreadDemo4
{
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 extends Thread
{
private int i=100;
public void run()
{
while(i>0)
{
System.out.println(Thread.currentThread().getName()+
" thread is sell ticket "+i--);
}
}
}这段程序如果把6。7。8。9行写成
new ThreadTest(t).start();
就出错。这是什么道理,书上说Thread.start()调用的是ThreadTest的RUN()函数。那么new ThreadTest(t).start();调用的是什么函数?不也是START吗?
谢谢各位前辈指点。
Thread(t).start();
会调用ThreadTest.run()?不是很明白
public void run() {
if (target != null) {
target.run();
}
}里面的target指的就是t所代表的ThreadTest
ThreadTest t2=new ThreadTest();
ThreadTest t3=new ThreadTest();
ThreadTest t4=new ThreadTest();
t1.start();
t2.start();
t3.start();
t4.start();
你在ThreadTest是继承Thread可直接调用其start()方法
如果要像你那样
ThreadTest t=new ThreadTest();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
就应该写为class ThreadTest implements Runnable