package com.xlkj.tests;class SubRunnable implements Runnable{
public void run() {}
}class SubThread extends Thread{
public void run() {
super.run();
}
}public class TestThread { public static void main(String[] args) {
SubRunnable sb=new SubRunnable();
//使用runnable对象做参数创建线程
Thread t1=new Thread(sb);
Thread t2=new Thread(sb);

//继承thread来创建线程
SubThread t3=new SubThread();
SubThread t4=t3; }
}我认为t1,t2两个线程可以操作同一资源(subrunnable),是不同实例;
t3,t4两个线程也可以操作同一资源,却是单实例;
这两种有什么不同,希望兄弟姐妹给予指教!thx!

解决方案 »

  1.   

    http://student.csdn.net/space.php?uid=310578&do=blog&id=37045
      

  2.   

    //使用runnable对象做参数创建线程
    Thread t1=new Thread(sb);
    Thread t2=new Thread(sb);多线程 ,两个线程都在跑 一个 RUN()方法//继承thread来创建线程
    SubThread t3=new SubThread();
    SubThread t4=t3;这个只是一个线程
      

  3.   

    3楼是关键。这个是Thread无法替代runnable的一个用法。
    当然,这里说的是 Is A。
    用 Has A,也可以达到这个目的。