[java]代码库
public class Test implements Runnable {
private String name;
public Test(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("线程开始:" + this.name + ",i=" + i);
try {
Thread.sleep((long) (Math.random() * 600)); // 睡眠时间随机
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Test t1 = new Test("线程1");
Test t2 = new Test("线程2");
Test t3 = new Test("线程3");
// 实现Runnable接口的子类不像继承Thread类的子类那样有start()方法,可以通过Thread类来启动Runnable线程
new Thread(t1).start();
new Thread(t2).start();
new Thread(t3).start();
}
}
高级设计师
by: 神马 发表于:2012-09-05 16:43:36 顶(0) | 踩(0) 回复
使用Runnable实现多线程可以共享资源,即一个实现了Runnable接口的实例可以多线程运行,但是多个线程用的是同一个实例里面的成员变量。例如:
new Thread(t1).start();
new Thread(t1).start();
new Thread(t1).start();
如果是继承Thread的实例则不可以这样实现资源共享!
另外如果类已经继承了其他类,可以通过实现Runnable接口实现多线程,解决了java不能多继承问题。
回复评论