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不能多继承问题。
回复评论