/*java里面实现多线程一般有两种方式
* 1,继承Thread类,实现run方法
* 2,实现Runnable接口,实现run方法
* start方法可以新建一个线程,创建多线程必须调用此方法
* run方法用于存放要多线程要运行的代码
* */
public class ThreadDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TicketT t1=new TicketT();
TicketT t2=new TicketT();
TicketT t3=new TicketT();
TicketT t4=new TicketT();
t1.start();//新建线程1
t2.start();//线程2
t3.start();//线程3
t4.start();//线程4
TickR r1=new TickR();
Thread t5=new Thread(r1);//将实现runable接口的类作为参数传递
t5.start();//新建线程,start中调用的是参数r1的run方法
}
}
/**继承Thread类,实现run方法,调用start()创建线程
* @author Changshuo
*/
class TicketT extends Thread
{
private static int tick=100;
@Override
public void run() {
while (true) {
if (tick>0) {
System.out.println(Thread.currentThread().getName()+"....卖:"+tick--);
}
}
}
}
/**
* 1,实现Runnable接口,
* 2,实现接口的run方法,将线程要运行的方法存放在run方法中
* 3,建立Thread类的线程对象,把接口的子类对象传递给Thread的构造函数
* 4,调用Thread类的start()开启线程,并调用Runnable的run方法
* @author Changshuo
*
*/
class TickR implements Runnable
{
private int tick=100;
@Override
public void run() {
while (true) {
if (tick>0) {
System.out.println(Thread.currentThread().getName()+"....卖:"+tick--);
}
}
}
}