Java中的多线程是使用彼此独立的虚拟处理实体执行复杂进程的行为。这些实体称为线程。Java中的线程是虚拟的,并与进程共享相同的内存位置。因为线程是虚拟的,所以它们展示了执行进程的更安全的方式。
什么是多任务以及多任务的类型?
多任务处理是一种通过同时执行多个任务来最小化执行时间和最大化CPU利用率的方法。您可以使用两种方法在Java中实现多任务处理,如下所述。
Java中的多处理
Java中的多处理纯粹基于主机上可用的处理器数量。用户发起的每个进程都被发送到CPU(处理器)。它用与分配的进程相关的数据加载CPU上的寄存器。
要在Java中执行多处理,用户需要一个处理器。因此,当用户请求同时执行第二进程时,备用CPU核心被触发并执行该进程。
Java中的多线程
Java中的多线程是一种类似的多处理方法。然而,两者之间存在一些根本性的区别。多线程不是物理处理器,而是虚拟的和独立的线程。
它根据进程的复杂性为每个进程分配一个或多个线程。每个线程都是虚拟的,相互独立。这使得流程执行更加安全。如果有一两个线程在意外情况下终止,进程执行不会停止。
在本Java中的多线程教程的下一节中,您将了解Java中的线程。
什么是Java中的线程?
线程是整个进程中最小的部分。线程是进程中独立的、虚拟的和顺序的控制流。在进程执行中,它涉及一个线程集合,每个线程共享相同的内存。每个线程独立于另一个线程执行作业。
有时,这些过程可能相互依赖,以获得一个完成该过程的中间结果。
在Java中的多线程教程的下一部分中,您将了解线程的生命周期。
Java中的一个线程
Java中每个线程的生命周期有五个不同的阶段。您将详细了解其中的每个阶段。生命周期的各个阶段如下所述。
New
Runnable
Running
Waiting
Dead
New
第一个阶段是“new”。这个阶段是它启动线程的地方。在此之后,每个线程都保持新状态,直到该线程被分配给新任务。
Runnable
下一阶段是可运行阶段。在这里,一个线程被分配给该任务,并设置自身以运行该任务。
Running
第三阶段是执行阶段。在这里,当控制进入线程时,线程被触发,线程执行一项任务并继续执行,直到它完成作业。
Waiting
有时,一个过程作为一个整体可能依赖于另一个过程。在这样的遭遇期间,线程可能会因为依赖于不同的进程而暂停以获得中间结果。这个阶段被称为等待阶段。
Dead
在Java中,使用多线程执行进程的最后阶段是线程终止。在终止进程之后,JVM自动声明该线程已死并终止该线程。此阶段称为死线阶段。
现在您已经了解了线程及其生命周期,接下来我们将继续学习并了解Java中的多线程。
Java中的多线程是什么?
到目前为止,您已经了解了进程、线程和线程的生命周期。您知道计算机通过线程执行任务。现在,您将学习Java中的多线程过程。
顾名思义,Java中的多线程通过同时运行一组线程来执行一个复杂的进程。每个线程都属于Java.lang.Thread类。线程类覆盖run()方法并执行该进程。
在下一部分中,您将了解Java中的多线程方法。
Java中的多线程方法
以下是Java中的多线程方法。
在介绍了Java中的多线程方法之后,您将完成一个基于Java中的多线程的示例。
Java中的多线程示例
下面是一个基于Java中使用runnable接口的多线程的示例。
### //Code
package multithreading;
class ThreadCount extends Thread{
ThreadCount(){
super("Overriding Thread Class");
System.out.println("New thread created" + this);
start();
}
public void run(){ //Run Method
try{
for (int i=0 ;i<10;i++){
System.out.println("New thread created" + this);
Thread.sleep(1500);
}
}
catch(InterruptedException e){
System.out.println("Currently executing thread is interrupted");
}
System.out.println("Currently executing thread run is terminated" );
}
}
public class MultiThreading{
public static void main(String args[]){
ThreadCount C = new ThreadCount();
try{
while(C.isAlive()){
System.out.println("Main Method Thread will be alive, until it's Child Thread stays alive");
Thread.sleep(2500); //Sleep method
}
}
catch(InterruptedException e){
System.out.println("Main Method thread is interrupted");
}
System.out.println("Main Method's thread run is terminated" );
}
}
接下来,您将了解Java中多处理和多线程之间的区别。
Java中的多处理与多线程
下表解释了Java中多处理和多线程之间的基本区别
接下来,您将了解Java中多线程的优点和缺点。
Java中多线程的优势
下面提到的是Java中多线程的几个优点:
Java中的多线程提高了性能和可靠性
Java中的多线程大大缩短了执行周期
在Java中使用多线程时,有一个流畅、无麻烦的图形用户界面响应
软件维护成本更低
CPU和其他处理资源是明智使用的模式
Java中多线程的缺点
以下是Java中多线程的一些缺点:
Java中的多线程给代码调试带来了复杂性
Java中的多线程增加了进程执行中死锁的可能性
在一些最糟糕的情况下,结果可能是不可预测的
在移植代码时可能会出现复杂情况
至此,您已经结束了“Java中的多线程”教程。