多线性基础篇(一)

本文介绍了多线程的概念,包括并发与并行的区别。详细讲解了Java中线程的创建方式,如Thread、Runnable、Callable接口以及线程池的使用,特别是ExecutorService接口的功能。同时对比了实现接口与继承Thread类的优缺点,以及Runnable和Callable接口的不同。此外,还提及了静态代理模式和Lambda表达式在多线程编程中的应用。
摘要由CSDN通过智能技术生成

多线程(多个线程并发执行)

  • 并发:指两个或者多个任务在同一时间段内发生
  • 并行:指两个或者多个任务在同一时刻段内发生

一、概述

在这里插入图片描述

进程 正在运行程序的实例,可以包含若干个线程,执行程序的一次过程,是个动态的概念
线程 Thread 线程是程序中执行的线程,是指进程的一个独立执行单元,一会进程可以同时并发运行多个线程
在这里插入图片描述

二、线程创建

创建方式

在这里插入图片描述

  • 第四种:线程池
第一种方式 Thread

代码如下

package com.gdh.thread;
//创建线程方式一:继承Thread 重写run方法()方法,调用start开启线程
/*
线程启动不一定是立即执行,需要CUP调度执行
 */
public class TestThread01 extends Thread {
   
    @Override
    public void run() {
   
        //super.run();
        //run方法线程体
        for (int i = 0; i < 20; i++) {
   
            System.out.println("我在看视频" +i);
        }
    }
    public static void main(String[] args) {
   
        //创建线程对象
        TestThread01 thread01 = new TestThread01();
        //调用start()方法开启线程  run()方法是依次执行 start()同时执行
        thread01.start();
        //main线程 主线程
        for (int i = 0; i < 2000; i++) {
   
            System.out.println("我在学习多线程"+i);
        }
    }
}

练习thread,实现多线程同步下载图片

package com.gdh.thread;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URL;

//练习thread,实现多线程同步下载图片
public class TestThread02 extends Thread{
   

    private String url;
    private String name;

    public TestThread02(String url, String name) {
   
        this.url = url;
        this.name = name;
    }

    @Override
    public void run() {
   
        WebDownloader webDownloader = new WebDownloader();
        webDownloader.downLocader(url,name);
        System.out.println(name);
    }

    public static void main(String[] args) {
   
        TestThread02 t1 = new TestThread02("https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/searchbox/nicon-10750f3f7d.png", "1.png");
        TestThread02 t2 = new TestThread02("https://music.163.com/#/song?id=569200213", "1.song");
        TestThread02 t3 = new TestThread02("https://music.163.com/#/mv?id=5958062", 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值