自学内容网 自学内容网

【JUC】JUC简要介绍

JUC是什么

JUC是java.util.concunrent的缩写,是并发编程中使用的工具包

在这里插入图片描述

课程前置知识

Java8新特性

课程:宋红康Java8新特性

  • Lambda表达式
  • 函数式(Functional)接口
  • 方法引用与构造器引用
  • 强大的Stream API
  • Optional类

JUC初级

课程-JUC并发编程
在这里插入图片描述

JVM

在这里插入图片描述

推荐书籍

在这里插入图片描述

为什么学习多线程很重要

硬件方面

  • 摩尔定律:当价格不变时,集成电路上可容纳的元器件的数目约每隔18-24个月便会增加一倍,性能也将提升一倍。
  • 可是从2003年开始CPU主频已经不再翻倍,而是采用多核而不是更快的主频。摩尔定律失效了,在主频不再提高且核数在不断增加的情况下,要想让程序更快就要用到并行或并发编程

软件方面

  • 充分利用多核处理器
  • 提高程序性能,高并发系统
  • 提高程序吞吐量,异步+回调等生产需求

多线程弊端

  • 线程安全性问题
    • i++:买票案例,重票,负数、错票
    • 集合类安全否
  • 线程锁问题:死锁
  • 线程性能问题:不同锁性能不同

Thread的start方法底层源码

public class ThreadBaseDemo {
    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(() -> {

        }, "t1");
        t1.start();

    }
}

调用C++底层方法
在这里插入图片描述

底层由c++实现

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

启动操作系统赋予的native线程

在这里插入图片描述

操作系统分配线程

在这里插入图片描述

文章说明

该文章是本人学习 尚硅谷 的学习笔记,文章中大部分内容来源于 尚硅谷 的视频尚硅谷JUC并发编程(对标阿里P6-P7),也有部分内容来自于自己的思考,发布文章是想帮助其他学习的人更方便地整理自己的笔记或者直接通过文章学习相关知识,如有侵权请联系删除,最后对 尚硅谷 的优质课程表示感谢。


原文地址:https://blog.csdn.net/laodanqiu/article/details/140686238

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!