通过start()方法创建线程
并且会自动执行run()方法,run()方法时本次新建线程要执行的内容。
ps: 不能直接调用run()方法,如果直接调用run()方法则还是在主线程调用,只有通过start()方法调用run()方法才是在新线程中执行的。
start()方法 如何调用run()方法,比较复杂,参考文档:
https://blog.csdn.net/qq_42859864/article/details/103428493?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-103428493.pc_agg_new_rank&utm_term=thread+start+%E5%90%8E%E8%B0%83%E7%94%A8%E5%85%B6%E4%BB%96%E6%96%B9%E6%B3%95%E6%98%AF%E5%9C%A8run%E5%89%8D%E8%B0%83%E7%94%A8&spm=1000.2123.3001.4430
1、继承Thread类,调用start()方法启动线程,重写run()方法。
start()方法会自从创建一个线程,并且执行run()方法,执行结束销毁线程。
public class ThreadDemo1 extends Thread{ /** * 重写run()方法 */ @Override public void run() { super.run(); System.out.println("ThreadDemo1执行run方法"); } public static void main(String[] args) { ThreadDemo1 threadDemo1 = new ThreadDemo1(); //通过start()方法会自动创建线程,并且执行run()方法 threadDemo1.start(); } } 执行结果: ThreadDemo1执行run方法
2、实现Runnable()接口,将类转换为Thread类型,调用start()方法启动线程,实现run()方法。
/** * 实现Runnable接口 */ public class ThreadDemo2 implements Runnable{ //重写run()方法 public void run(){ System.out.println("执行ThreadDemo2中的run()方法"); } public static void main(String[] args) { ThreadDemo2 threadDemo1 = new ThreadDemo2(); Thread thread = new Thread(threadDemo1); thread.start(); } } 执行结果: 执行ThreadDemo2中的run()方法
说明:
在程序开发中,建议使用实现Runnable接口来创建线程。实现接口的同时,还可以继承其他的类。
通过继承Thread类创建线程,继承只能是单继承,就不能继承其他的类。