DAY 2 多线程的概念 并发和并行和线程的实现方式

多线程的概念

并发:并发就是在同一时刻,有多个指令在单个CPU上交替执行

示例:

 

并行:并行就是在同一时刻,有多个指令在CPU上同时执行

示例:

CPU分为很多种类拿2核四线程举例

同时执行四个线程,比如像上图一个多个任务,这四条红线就会随机的进行切换执行

 

小结

并发:并发就是在同一时刻,有多个指令在单个CPU上交替执行

并行:并行就是在同一时刻,有多个指令在CPU上同时执行

 

线程实现方式

1.继承Thread类

通过创建一个继承自Thread类的子类,并重写其run方法来定义线程的行为。

public class MyThread extends Thread {
    @Override
    public void run() {
        // 线程要执行的代码
    }
}

// 使用
MyThread t = new MyThread();
t.start();

 2.实现Runnable接口

创建一个实现了Runnable接口的类,然后将这个实现了Runnable接口的类的实例传递给Thread类的构造函数。

public class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 线程要执行的代码
    }
}

// 使用
Thread t = new Thread(new MyRunnable());
t.start();

3.实现Callable接口  

CallableRunnable类似,但它可以返回一个结果,并且能抛出异常。它需要与FutureTask配合使用,才能作为Thread的target。

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class MyCallable implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        // 线程要执行的代码,并返回结果
        return 123;
    }
}

// 使用
FutureTask<Integer> task = new FutureTask<>(new MyCallable());
Thread t = new Thread(task);
t.start();
// 获取结果
Integer result = task.get();

4.使用ExecutorService

ExecutorService是一个执行器服务,提供了一个框架来管理异步任务的执行。它在Java并发API中定义。 

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(new MyRunnable());
executor.shutdown();

以上列举了四种实现方式 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值