栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 多线程学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 多线程学习笔记

吹爆 狂神哥 的 B站教程

Java 多线程 线程简介
  • 一个进程,通常可以包含若干个线程,线程是 CPU 调度和执行的单位。

  • 线程就是独立的执行路径;

  • 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc 线程;

  • main() 为主线程,即系统的入口,用于执行整个程序;

  • 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为干预的;

  • 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制;

  • 线程会带来额外的开销,如 CPU 调度时间,并发控制开销;

  • 每个线程只能在自己的工作内存中交互,内存控制不当会造成数据不一致。

线程实现(重点)

普通方法调用和多线程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4j9K3lsm-1635691815680)(https://img10.360buyimg.com/ddimg/jfs/t1/141212/26/27751/207535/617e9574Ed49c8f12/5de91c494e9fb485.png)]

三种实现方式

Thread class —— 继承 Thread 类(重点)

Runnable 接口 —— 实现 Runnable 接口(重点)

Callable 接口 —— 实现 Callable 接口(了解)

Thread 实现

自定义线程类继承 Thread 类

重写 run() 方法,编写线程执行体

创建线程对象,调用 start() 方法启动线程

package Thread;

// 创建线程方式1:继承 Thread 类,重写 run() 方法,调用 start 开启线程
// 总结:注意,线程开启不一定立即执行,由 CPU 调度执行
public class TestThread1 extends Thread{
    @Override
    public void run() {
        // run 方法线程体
        for (int i=0; i<20; i++) {
            System.out.println("我在写代码----" + i);
        }
    }

    public static void main(String[] args) {
        // main 线程,主线程
        // 创建一个线程对象
        TestThread1 testThread1 = new TestThread1();
        // 调用 start 方法开启线程
        testThread1.start();

        for (int i = 0; i < 20; i++) {
            System.out.println("我在学习多线程----" + i);
        }
    }
}
线程状态 线程同步(重点) 线程通信问题 高级主题
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361512.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号