线程销毁_Java多线程基础

本文介绍了并发和并行的概念,以及线程和进程的区别。在Java中,线程的创建可以通过继承Thread类或实现Runnable接口。线程的生命周期包括新建、就绪、运行、阻塞和销毁五个阶段。当线程执行完毕或被强制终止时,线程会被销毁,释放资源。
摘要由CSDN通过智能技术生成
777fc8eee13e733143c7b88a939f35ac.png

要了解多线程就要了解并发并行以及线程进程的概念。

并发和并行

并行:多个动作或者事件能够同时执行。

并发:多个动作或者事件同时存在。

比如你想去吃饭,在吃饭的时候,能同时打电话,这就是并行。如果你停下吃饭,接听电话,打完电话再去吃饭,这就是并发。如果你是吃完饭了,再去接电话那就是既不支持并发也不支持并行。

线程和进程

进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程——资源分配的最小单位。

线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——程序执行的最小单位。

在Java中创建线程有两种方式。

  1. 继承Thread类
public class Thread1 extends Thread{  @Override  public void run(){    System.out.println("创建线程的方式继承Thread");  }  public static void main(String[] args) {    new Thread1().start();  }} 

2. 实现Runnable类

public class Thread2 implements Runnable{  @Override  public void run(){    System.out.println("创建线程的方式实现runnable");  }  public static void main(String[] args) {    new Thread(new Thread2()).start();  }}

注意一点:当调用线程的start()方法时,最少有两个线程在运行,一个是调用start()方法的线程,一个是执行run()方法的线程。可以使用jps和jconsole命令查看。

线程的生命周期

线程的生命周期包含5个阶段,包括:新建、就绪、运行、阻塞、销毁。

  • 新建(NEW):就是刚使用new方法,new出来的线程;
  • 就绪(RUNNABLE):就是调用的线程的start()方法后,这时候线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁开始执行;
  • 运行(RUNNNING):当就绪的线程被调度并获得CPU资源时,便进入运行状态,run方法定义了线程的操作和功能;
  • 阻塞(BLOCKED):在运行状态的时候,可能因为某些原因导致运行状态的线程变成了阻塞状态,比如sleep()、wait()之后线程就处于了阻塞状态,这个时候需要其他机制将处于阻塞状态的线程唤醒,比如调用notify()或者notifyAll()方法。唤醒的线程不会立刻执行run方法,它们要再次等待CPU分配资源进入运行状态;
  • 销毁(TERMINATED):如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源; 但是我们在Java的Thread.State中却发现有六种状态。其实BLOCKED、WAITING、TIMED_WAITING这三种都可以归结为BLOCKED。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值