与许多其他计算机语言不同,Java提供了对多线程的内置支持。Java中的多线程包含两个或多个可以同时运行的部分。Java线程实际上是一个轻量级进程。
本文将介绍许多人发现棘手或难以理解的Java Thread概念。
我将讨论以下主题:
- 什么是Java线程?
- Java线程模型
- Java多线程
- Java主线程
- 如何创建Java线程?
在继续第一个主题之前,请考虑以下示例:
想象一下具有许多复杂功能的股票经纪人应用程序,例如
- 下载最后的股价
- 查看价格以获取警告
- 分析特定公司的历史数据
这些是耗时的功能。在单线程运行时环境中,这些操作将一个接一个地执行。仅当上一个操作完成后,才能执行下一个操作。
如果历史分析需要半小时,并且用户选择执行下载并事后检查,则警告可能来不及买卖股票。这是一种需要多线程处理的应用程序。理想情况下,下载应在后台(即在另一个线程中)进行。这样,其他进程可能会同时发生,从而例如可以立即传达警告。一直以来,用户都在与应用程序的其他部分进行交互。分析也可能在单独的线程中进行,因此用户可以在计算结果的同时使用应用程序的其余部分。
这是Java线程提供帮助的地方。
什么是Java线程?
线程实际上是一个轻量级进程。与许多其他计算机语言不同,Java为多线程编程提供了内置支持。多线程程序包含可以同时运行的两个或多个部分。这种程序的每个部分都称为一个线程,每个线程都定义了一个单独的执行路径。因此,多线程是多任务的一种特殊形式。
Java线程模型
Java运行时系统在很多方面都依赖于线程。线程通过防止浪费CPU周期来降低效率。
线程以几种状态存在:
- New-当我们创建Thread类的实例时,线程处于新状态。
- Running-Java线程处于运行状态。
- Suspended -正在运行的线程可以被挂起,这会暂时挂起其活动。然后可以恢复被挂起的线程,使它可以从中断的位置继续进行。
- Blocked-等待资源时可以阻止Java线程。
- Terminated-线程可以终止,这可以在任何给定时