返回
轻松理解并发与并行,揭秘线程创建的三种方法
后端
2023-10-05 12:00:01
一、并发与并行的概念
并发和并行都是用来多个任务同时执行的情况。但是,并发和并行之间存在着本质的区别。
并发是指多个任务交替执行,即在一个时间点上,只有一个任务在执行,其他任务都在等待。并发可以通过时间片轮转的方式来实现。时间片轮转是指将处理器的时间划分为一个个小的时间片,每个任务在一个时间片内执行,当时间片用完后,处理器会将当前任务挂起,并执行下一个任务。这样,多个任务就可以交替执行,看起来就像是在同时执行一样。
并行是指多个任务同时执行,即在一个时间点上,有多个任务在执行。并行可以通过多核处理器或多台计算机来实现。多核处理器是指在一个芯片上集成多个处理器的处理器,每个处理器都可以同时执行一个任务。多台计算机是指将多个计算机连接在一起,形成一个分布式系统,每个计算机都可以同时执行一个任务。
二、线程的三种创建方法
线程是并发和并行执行的基本单位。线程是操作系统分配给进程的一个独立的执行单元,它可以独立于其他线程执行。线程共享进程的地址空间,因此可以访问进程中的所有全局变量。
在Java中,可以通过三种方式来创建线程:
- 继承Thread类
public class MyThread extends Thread {
@Override
public void run() {
// 线程执行的代码
}
}
- 实现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();
}
}
- 使用ExecutorService
ExecutorService executorService = Executors.newFixedThreadPool(10);
executorService.submit(() -> {
// 线程执行的代码
});
三、结束语
并发和并行是计算机科学中的两个重要概念。并发是指多个任务交替执行,而并行是指多个任务同时执行。线程是并发和并行执行的基本单位。在Java中,可以通过三种方式来创建线程:继承Thread类、实现Runnable接口和使用ExecutorService。