Java两种实现多线程的方法
2025年09月21日
3.Java两种实现多线程的方法
(1)线程类
线程类继承Thread类,重写run()方法〔当该线程被执行时,要执行的内容写在run()方法中〕。
启动线程的方法:定义好线程类,先创建线程对象,然后调用start()方法来启动线程。至于该线程对象何时真正获得CPU而被运行,就由操作系统来调度。
【代码12.1】
当程序运行时,首先启动main线程。main()函数中的第3行创建了线程my Thread,第4行启动了线程my Thread。主线程main和线程my Thread并发执行,两者交替获得CPU。
代码12.1的运行结果:
hello
world
world
hello
world
hello
hello
world
world
hello
代码12.1每次运行的结果会不同,即运行结果不唯一。
因为CPU运行速度是很快的,为了体现出多道线程交替占有CPU的运行结果,在main线程和My Thread线程中都加了线程休眠的语句,见代码12.1的第7行和第20行。
(2)任务类
任务类实现Runnable接口和run()方法〔任务要执行的内容写在run()方法中〕。
启动线程的方法:定义好任务类后(代码12.2的第17行到第28行),先创建一个任务的对象(代码12.2的第3行),然后以此任务类对象为传入参数,创建一个Thread对象(代码12.2的第4行)。
【代码12.2】
代码12.1和代码12.2的运行结果是一样的。建议使用代码12.2的方法。