日期:2014-05-20  浏览次数:20705 次

关于多线程创建时的参数问题
YieldDemo yd=new YieldDemo();(该类实现了Runnable 接口)
Thread t1=new Thread(yd,"Max");
Thread t2=new Thread(yd,"Min");
Thread t3=new Thread(yd,"Normal");



为什么这三个线程的参数可以是同一个实现Runnable 接口的实例化对象呢?难道不应该是三个吗……

------解决方案--------------------
实现Runnable接口只是要重写里面的run方法,而run方法里面的方法体就是线程用来具体执行的指令,创建3个线程放入同一个参数,就表示有3个线程执行同一个指令,如果是3个不同的参数,那就表示3个线程分别执行3个不同的指令了.
------解决方案--------------------
引用:
那我可以实例化三个YieldDemo对象然后分别放到三个Thread的参数里面吗?Thread类里的那个参数究竟是什么意思呢?只是表示一个命令吗?所有的接口都可以表示命令还是就Runnable表示命令?问题有点多啊嘿嘿……

实例化3个对象分别放到3个Thread的参数里就表示有3个线程,这3个线程分别执行不同的任务(其实就是同一个任务,因为3个对象的run方法都是一样的),参数的意思就是把你要执行的命令通过参数的形式传递给线程。只有重写的Runnable接口里面的run方法才是具体要执行的命令。或者说用另外一种方式创建线程(就是自定义类继承线程,但是也要重写run方法,run方法才是执行的命令)。