多线程概述

2021-03-18 18:27

阅读:422

标签:ted   res   shu   run   通过   接口   淘宝   extend   except   

概述

多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。

进程:执行程序一次的执行过程,动态的,由系统资源分配的单位。

线程:是cpu调度和执行的单位。

进程包括多个线程,至少有一个线程。

真正的多线程是有多个cpu,即多核。

模拟出来的多线程是一个cpu,在一个时间点只能执行一个代码,因为切换的很快,所以就有了同时执行的错觉。

模型图片

技术图片

使用方法

Thread

  • 继承Thread
  • 覆写run方法
  • 创建对象
  • 调用start方法

Runnable

  • 接口Runnable
  • 覆写run方法
  • 创建对象
  • 创建Thread对象,将上一个对象传入,调用start方法

Callable

  • 接口Callable
  • 覆写call方法,相当于run方法
  • 创建对象
  • 创建执行服务 Executors.newFixedThreadPool(3);
  • 提交执行 ser.submit(t1);
  • 获取结果 r1.get();
  • 关闭服务 ser.shutdownNow();

实例

Thread

/**
 * 多线程 第一种 通过Thread实现
 */
public class ThreadDemo01 extends Thread {
    @Override
    public void run() {
        for (int i = 0; i 

Runnable

public class RunnableDemo01 implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i 

Callable

/**
 * 通过Callable 实现多线程
 * 主要环节在四个注释的地方
 */
public class CallableDemo01 implements Callable {
    private String name;
    public CallableDemo01(String name) {
        this.name = name;
    }
    @Override
    public Boolean call() throws Exception {
        for (int i = 0; i  r1 = ser.submit(t1);
        Future r2 = ser.submit(t2);
        Future r3 = ser.submit(t3);
//        获取结果
        Boolean res1 = r1.get();
        Boolean res2 = r2.get();
        Boolean res3 = r3.get();
        //关闭服务
        ser.shutdownNow();

        for (int i = 0; i 

一句话

把一个任务交给多个线程来运行,就好比田径场分成1,2,3...等跑道,具有通用性。

多线程概述

标签:ted   res   shu   run   通过   接口   淘宝   extend   except   

原文地址:https://www.cnblogs.com/gbhh/p/13768069.html

上一篇:有关数组的算法题

下一篇:NW.js


评论


亲,登录后才可以留言!