java基础知识【第17期】-- 线程

本文深入探讨了Java中的线程基础知识,包括线程与进程的区别、并发与并行的概念,以及Java创建线程的三种方式:实现Runnable接口、继承Thread类和使用Callable与Future。此外,还详细介绍了Thread类的关键方法和线程的生命周期状态。

导读:

本篇是JAVA基础系列的第17篇,今天我们梳理java 多线程的相关知识点。多线程几乎是面试中必问的题,所以掌握一定的基础知识是必须的。而且线程是很多知识点的基础,例如我们之前在学习字符串操作类时,StringBuffer类就是线程安全。

1.线程与进程

  • 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同 时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序 即是一个进程从创建、运行到消亡的过程。

  • 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。

  • 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程

2.线程与进程区别

  1. 进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响。

  2. 线程是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。

  3. 一个程序至少有一个进程,一个进程至少有一个线程.

  4. 线程的划分尺度小于进程,使得多线程程序的并发性高。

  5. 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

  6. 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

  7. 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别

3.并发与并行

  • 并发是指同一个时间段内多个任务同时都在执行,并且都没有执行结束。并发任务强调在一个时间段内同时执行,而一个时间段由多个单位时间累积而成,所以说并发的多个任务在单位时间内不一定同时在执行。

  • 并行是说在单位时间内多个任务同时在执行 。

在多线程编程实践中,线程的个数往往多于CPU的个数,所以一般都称多线程并发编程而不是多线程并行编程。

4.java中线程的创建方式

Java 提供了三种创建线程的方法:

  • 通过实现 Runnable 接口;

  • 通过继承 Thread 类本身;

  • 通过 Callable 和 Future 创建线程。

实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以说任务是通过线程驱动从而执行的。

5.通过实现 Runnable 接口来创建线程

创建一个线程,最简单的方法是创建一个实现 Runnable 接口的类,需要重写run方法。

通过 Thread 调用 start() 方法来启动线程。

 public class MyRunnable implements Runnable {
     public void run() {
         // ...
    }
 
     public static void main(String[] args) {
         MyRunnable instance = new MyRunnable();
         Thread thread = new Thread(instance);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值