返回

轻松理解并发与并行,揭秘线程创建的三种方法

后端

一、并发与并行的概念

并发和并行都是用来多个任务同时执行的情况。但是,并发和并行之间存在着本质的区别。

并发是指多个任务交替执行,即在一个时间点上,只有一个任务在执行,其他任务都在等待。并发可以通过时间片轮转的方式来实现。时间片轮转是指将处理器的时间划分为一个个小的时间片,每个任务在一个时间片内执行,当时间片用完后,处理器会将当前任务挂起,并执行下一个任务。这样,多个任务就可以交替执行,看起来就像是在同时执行一样。

并行是指多个任务同时执行,即在一个时间点上,有多个任务在执行。并行可以通过多核处理器或多台计算机来实现。多核处理器是指在一个芯片上集成多个处理器的处理器,每个处理器都可以同时执行一个任务。多台计算机是指将多个计算机连接在一起,形成一个分布式系统,每个计算机都可以同时执行一个任务。

二、线程的三种创建方法

线程是并发和并行执行的基本单位。线程是操作系统分配给进程的一个独立的执行单元,它可以独立于其他线程执行。线程共享进程的地址空间,因此可以访问进程中的所有全局变量。

在Java中,可以通过三种方式来创建线程:

  1. 继承Thread类
public class MyThread extends Thread {
    @Override
    public void run() {
        // 线程执行的代码
    }
}
  1. 实现Runnable接口
public class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 线程执行的代码
    }
}

public class Main {
    public static void main(String[] args) {
        Thread thread = new Thread(new MyRunnable());
        thread.start();
    }
}
  1. 使用ExecutorService
ExecutorService executorService = Executors.newFixedThreadPool(10);
executorService.submit(() -> {
    // 线程执行的代码
});

三、结束语

并发和并行是计算机科学中的两个重要概念。并发是指多个任务交替执行,而并行是指多个任务同时执行。线程是并发和并行执行的基本单位。在Java中,可以通过三种方式来创建线程:继承Thread类、实现Runnable接口和使用ExecutorService。