//java的两种多线程实现方式其实是一种,Thread 实现Runnable接口 //因为Thred是单继承,所以给出Runnable能让一个类同时实现多个接口或者继承1个类 //Runnable接口的子类如果要实现线程必须要借助Thread类 //证明 //public Thread(Runnable target) { // init(null, target, "Thread-" + nextThreadNum(), 0); // }
//第一种实现形式
public class thread_two implements Runnable {
public static void main(String args[]) {
new Thread(new thread_two("mao")).start();
new Thread(new thread_two("hu")).start();
}
private String name;
public thread_two(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(name + "运行:" + i);
try {
Thread.sleep((int) (Math.random() * 10));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//第二种实现形式 public class thread_one extends Thread { private String name;
public thread_one(String name) {
this.name = name;
}
public static void main(String args[]) {
thread_one a1 = new thread_one("hu");
thread_one a2 = new thread_one("mao");
a1.start();
a2.start();
System.out.println(a1.getId());
System.out.println(a1.getPriority());
System.out.println(a1.isAlive());
System.out.println(a1.toString());
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(name + "运行:" + i);
try {
sleep((int) (Math.random() * 10));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}