jvm线程和操作系统线程
线程是指同时执行编程过程以提高应用程序性能的实践。 虽然在业务应用程序中直接使用线程并不常见,但在Java框架中一直使用它们。
例如,处理大量信息的框架(例如Spring Batch )使用线程来管理数据。 同时处理线程或CPU进程可提高性能,从而产生更快,更高效的程序。
获取源代码
获取此Java Challenger 的代码 。 在遵循示例的同时,您可以运行自己的测试。
找到第一个线程:Java的main()方法
即使您从未直接使用过Java线程,也可以间接使用它们,因为Java的main()方法包含一个main Thread 。 每当执行main()
方法时,您还将执行main Thread
。
学习Thread
类对于理解Java程序中的线程工作原理非常有帮助。 我们可以通过调用currentThread().getName()
方法来访问正在执行的线程,如下所示:
public class MainThread {
public static void main(String... mainThread) {
System.out.println(Thread.currentThread().getName());
}
}
该代码将显示“ main”,标识当前正在执行的线程。 了解如何识别正在执行的线程是吸收线程概念的第一步。
Java线程生命周期
使用线程时,了解线程状态至关重要。 Java线程生命周期包含六个线程状态:
- 新增 :已实例化新的
Thread()
。 - Runnable :已调用
Thread
的start()
方法。 - 正在运行 :已调用
start()
方法,并且线程正在运行。 - 已暂停 :该线程被暂时暂停,可以被另一个线程恢复。
- 已阻止 :线程正在等待运行机会。 当一个线程已经调用了
synchronized()
方法,而下一个线程必须等待其完成时,就会发生这种情况。 - 已终止 :线程的执行已完成。