package countThread;
public class CountThread extends Thread{
private String name;
public CountThread(String name) {
super(name);
}
/**
* 线程的执行体
*
* 创建新执行线程有两种方法,一种方法是将类声明为Thread的子类,该子类应该重写Thread类中的run方法
* 接下来可以分配并且启动该子类的实例
*/
@Override
public void run() {
for(int i=0;i<50;i++) {
System.out.println(this.getName()+"hello"+i);
}
}
}
package countThread;
public class CountThread2 implements Runnable{
/**
* 线程的执行体
*
* 创建新执行线程有两种方法,一种方法是将类声明为Thread的子类,该子类应该重写Thread类中的run方法
* 接下来可以分配并且启动该子类的实例
*/
@Override
public void run() {
for(int i=0;i<50;i++) {
//输出线程的名字
System.out.println(Thread.currentThread().getName()+"hello"+i);
}
}
}
package countThread;
public class Demo2 {
public static void main(String[] args) {
CountThread ct = new CountThread("我是1");
CountThread ct1 = new CountThread("我是2");
/*
ct.setName("线程1");
ct1.setName("线程2");
*/
//启动线程
/**
* ct.run()!!!不是这么调用的,这样只是调用了run方法
*/
ct.start();
ct1.start();
}
}
package countThread;
public class Demo3 {
public static void main(String[] args) {
CountThread2 ct = new CountThread2();
Thread t1 = new Thread(ct,"123");
CountThread2 ct1 = new CountThread2();
Thread t2 = new Thread(ct1,"456");
t1.start();
t2.start();
}
}