在JAVA中,有2种形式可以实现自己的多线程程序,第一种是继承,第二种是实现接口里的方法。
因为在JAVA中不许多重继承,所以大多数我们选择第二种实现接口来实现自己的多线程程序。
第一种:
启动这个线程:
第二种:
启动这个线程:
从这里可以看到,创建多线程的这2种方法都差不多,都要实现RUN方法,唯一比较大的区别就是在实例化这个地方,需要注意。当start()方法开始执行,那么我们实现的RUN方法也就开始被执行了,RUN方法执行完后,这个线程也就结束了自己的生命周期。如果我们想此线程不退出,那么我们只要保证这个线程不结束就可以了。通常加一个死循环,如:
这样做,当此线程有事情要做时,CPU会分配时间片,如果不执行,那么CPU将把时间片交给其它的程序,而此线程一直处于休眠状态,直到在次被CPU唤醒。而此线程一直存在。
因为在JAVA中不许多重继承,所以大多数我们选择第二种实现接口来实现自己的多线程程序。
第一种:
public class Thread1 extends Thread {
public void run(){
//这里实现自己的逻辑代码;
}
}启动这个线程:
Thread1 t=new Thread1();//new出Thread1对象实例
t.start();//启动第二种:
public class Thread2 implements Runnable {
public void run(){
//这里实现自己的逻辑代码;
}
} 启动这个线程:
Thread t2=new Thread(new Thread2());//new出Thread1对象实例
t.start();//启动从这里可以看到,创建多线程的这2种方法都差不多,都要实现RUN方法,唯一比较大的区别就是在实例化这个地方,需要注意。当start()方法开始执行,那么我们实现的RUN方法也就开始被执行了,RUN方法执行完后,这个线程也就结束了自己的生命周期。如果我们想此线程不退出,那么我们只要保证这个线程不结束就可以了。通常加一个死循环,如:
public void run(){
while(true){
//逻辑代码
}
}这样做,当此线程有事情要做时,CPU会分配时间片,如果不执行,那么CPU将把时间片交给其它的程序,而此线程一直处于休眠状态,直到在次被CPU唤醒。而此线程一直存在。
本文详细介绍了Java中创建多线程的两种主要方法:继承Thread类和实现Runnable接口。解释了这两种方法的相似之处和不同之处,并强调了如何在实例化阶段进行区分。还讨论了线程运行流程,包括如何让线程无限循环执行任务,以及线程生命周期的结束条件。
3003

被折叠的 条评论
为什么被折叠?



