--- title: Multithreading localeTitle: 多线程 --- ## 多线程 多线程是一个同时执行多个进程的过程。 Java使用主线程启动程序,并且只要有任何用户创建它,就会在主线程上添加更多线程。主线程是任何Java程序中的第一个用户线程。此外,JVM确保在程序结束之前关闭所有用户线程。 线程既有优点也有缺点。 ## 好处: * 独立于其他线程运行代码。 * 创建模块化设计。 ## 缺点: 如果线程未正确同步,则会出现竞争条件和死锁。 线程可以进一步分为两类: * 用户线程 * 守护线程 可以通过两种方式创建线程: 1. 实现Runnable接口: Runnable接口中只有一个方法,即public void run()。实现此方法将确保每当此线程启动时,run()内的代码执行。 2. 扩展线程类。 这个类还包含public void run(),为了运行我们自己的代码,我们需要覆盖它们。使用此方法的缺点是我们在Thread中有一个超类,并且不能扩展我们可能想要的任何其他类。 两者的代码可以在这里找到:http://ide.geeksforgeeks.org/k7GjcA。 您会注意到,如果多次运行此代码,结果可能会有所不同。这是由运行它的操作系统决定的。操作系统可以从可运行状态中选择任何线程并运行它。我们没有控制权。如果有多个线程处于可运行状态(准备运行),则可以挑选任何人。它甚至不依赖于优先权。 更多详情:https://www.ntu.edu.sg/home/ehchua/programming/java/J5e\_multithreading.html