我们上一篇的Thread能创建线程但是我们还是要实现Runnable方法来创建我们的线程
主要有两个原因:
Java不支持多继承
不对thread中的其他方法进行重写
package Runnableproj;
class PrintRunnable implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
int i = 1;
while(i<=10) {
System.out.println(Thread.currentThread().getName()+"正在运行第"+i+"次");
i++;
}
}
}
public class RunnableTest {
public static void main(String[] args) {
//继承自Thread时需要两步启动线程
//只能通过Thread或者它的子类启动线程
PrintRunnable pr= new PrintRunnable();
Thread t1 = new Thread(pr);
t1.start();
PrintRunnable pr1= new PrintRunnable();
Thread t2 = new Thread(pr1);
t2.start();
}
}
package Runnableproj;
class PrintRunnable implements Runnable{
int i = 1;
@Override
public void run() {
// TODO Auto-generated method stub
while(i<=10) {
System.out.println(Thread.currentThread().getName()+"正在运行第"+i+"次");
i++;
}
}
}
public class RunnableTest {
public static void main(String[] args) {
//继承自Thread时需要两步启动线程
//只能通过Thread或者它的子类启动线程
PrintRunnable pr= new PrintRunnable();
Thread t1 = new Thread(pr);
t1.start();
Thread t2 = new Thread(pr);
t2.start();
}
}
这次的代码中我们两个线程共享我们的run方法,两个线程争夺i,结果随机