public void run() {
System.out.println("MyThread:run()");
}
public void start() {
System.out.println("MyThread:start()");
}
}
package com.thread;
public class MyThread extends Thread{
public void run() {
System.out.println("MyThread:run()");
}
public void start() {
System.out.println("MyThread:start()");
}
MyThread myThread = new MyThread();//创建MyThread对象
MyRunnable myRunnable = new MyRunnable();//创建MyRunnable对象
Thread thread = new Thread(myRunnable);//创建线程与MyRunnable对象相关联
myThread.start();//调用MyThread类中的start()方法
thread.start();//开启线程 作者: 范德农 时间: 2012-12-31 15:07
懒得打代码了,就着你的代码,逐条分析
package com.thread;
public class MyRunnable implements Runnable{
public void run() {
System.out.println("MyThread:run()");
}
//引用Runable接口的类自己定义的start()方法实际上对以改类实例做参数的线程毫无影响
public void start() {
System.out.println("MyThread:start()");
}
}
package com.thread;
public class MyThread extends Thread{
public void run() {
System.out.println("MyThread:run()");
}
//覆盖了本应继承自Thread类的start()方法,于是start()方法失去了启动线程的功能
public void start() {
System.out.println("MyThread:start()");
}
MyThread myThread = new MyThread();
myThread.start();//调用myThread 的start方法。输出:MyThread:start()
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start(); 这是线程的第二种实现方式: 启动后,会执行myRunnable的 run方法,输出:MyThread:run()
作者: 何伟 时间: 2013-1-1 00:19
package com.thread;
public class MyRunnable implements Runnable{
public void run() {
System.out.println("MyThread1:run()");//打印的内容上下一样有点晕,我这里改下,这个是复写了接口的run方法,想要实现多线程这是必须的
}
public void start() {//这是myRunnable这个类自己的方法,runnable接口中并没有这个方法,用该类的实例对象可以调用它,
System.out.println("MyThread1:start()");
}
}
package com.thread;
public class MyThread extends Thread{
public void run() {
System.out.println("MyThread2:run()");
}
public void start() {//重写线程类的stsrt方法我还是第一次见,start方法是用来调用run方法的,你重写后就失去启动纯种的意义了
System.out.println("MyThread2:start()");
}
}
public static void main(String[] args) {
MyThread myThread = new MyThread();//创建myThrea对象
myThread.start();//mythrea调用的是MyThrea本类的start方法,打印的是MyThread2:start()
//这个是多线程
MyRunnable myRunnable = new MyRunnable();// 创建任务对象
Thread thread = new Thread(myRunnable);// 创建线程对象,并把任务(myRunnable)给线程对象threa
thread.start();//打印的是MyThread1:run(),因为启动线程需要调用Thread类的start()方法。而start会去调用任务myRunnable的run方法
}