java学习(一):多线程

系列文章目录

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、java多线程
    • 1. 学习视频
    • 2. 参考网址
    • 3. 学习总结


前言

多线程基础,还有很多高级用法要继续学习

一、java多线程

1. 学习视频

https://www.bilibili.com/video/BV1V4411p7EF?p=28&spm_id_from=pageDriver&vd_source=585eef59d366645f5bf03840b1010547

2. 参考网址

https://blog.csdn.net/yi_tong_/article/details/127431697

3. 学习总结

package com.test.common;

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

public class LearnThread {
    public static void main(String[] args) {
        Thread1 thread1 = new Thread1();
        thread1.start();


        Thread2 thread2 = new Thread2();
        new Thread(thread2).start();

        Thread3 thread3 = new Thread3();
        ExecutorService service = Executors.newFixedThreadPool(1);
        service.submit(thread3);
        service.shutdown();

       // thread1.setPriority(5);

    }
}

// 1. 创建线程的三种方式:继承Thread类 实现runnable接口  实现 Callable

// 2. 线程的5个状态:创建 就绪 执行 死亡 阻塞
// 线程停止 Thread.shutdown()
// 线程休眠 thread.sleep
// 线程礼让 thead.yeild()
// 线程强制执行 thread.join()

// 3, 线程优先级 thread1.setPriority(5);

// 4. 线程同步安全的两种方式 :排队 + 加锁: synchronized () 锁方法或者代码快  lock:  手动加锁和解锁

// 5.线程协作的两种方法(生产--消费怎么通知和处理): 管程法(借助第三个类处理);信号灯(创建一个全局标识符处理)

// 6.其他:lambda表达式、 代理模式、 JUC、 死锁等






class Thread1 extends Thread {
    @Override
    public void run() {
        System.out.println("Thread1");
    }
}

class Thread2 implements Runnable {
    @Override
    public void run() {
        System.out.println("Thread2");
    }
}

class Thread3 implements Callable {

    @Override
    public Object call() throws Exception {
        System.out.println("Thread3");
        return 10;
    }
}


你可能感兴趣的:(java,java)