编程笔记

  • java基础----jdk1.8好用的新特性

    1. 时间处理类,LocalDate、LocalTime、LocalDateTime,都是线程安全,可以完全替代Date和Calendar 2. CompletableFuture,并发包中的升级版,可以获得执行异步线程的执行结果,任意组合多个异步线程的执行顺序,以…

    编程笔记 2022年7月21日
  • linux c 开发中的 assert作用

    断言(assert)作为一种软件调试的方法,提供了一种在代码中进行正确性检查的机制,目前很多开发语言都支持这种机制。 它的主要作用是对一个 boolean 表达式进行检查,一个正确运行的程序必须保证这个 boolean 表达…

    编程笔记 2022年7月21日
  • java基础----记一次线上的CountDownLatch引发的死锁问题

    1. 大概流程:主线程A执行获取后台广告相关的所有数据,在主线程方法中,开启了一个数量是5(需要获取5部分数据)的CountDownLatch,运行5个子线程A1、A2、A3、A4、A5。这5个子线程用的是threadPool1,目的是获取数…

    编程笔记 2022年7月21日
  • java基础----AQS---CountDownLatch

    AQS---abstractQueuedSynchronizer java并发的主要实现类,内部实现了获取锁和释放锁的主要流程,自定义的同步器,如果是排他锁,实现tryAcquire、tryRelease;如果是共享锁,实现tryAcquireShared,tryReleaseShared…

    编程笔记 2022年7月21日
  • java基础----threadpoolexecutor

    线程池创建以及执行任务过程分析:   1. 创建线程池 Creates a new ThreadPoolExecutor with the given initial parameters.Params:corePoolSize – the number of threads to keep in the pool, even if they are i…

    编程笔记 2022年7月21日
  • java基础----AQS---acquireQueued详解

    1. 假设有A、B、C三个线程同时执行,A线程获取到了锁,并且一直持有中。2. B线程执行,获取锁失败会被加到等待队列中,因为此时队列为空,则建立空节点head,同时B线程添加节点到队列中,作为第一个等待的节点,所…

    编程笔记 2022年7月21日
  • java----异常

    《异常简介》    1.所谓逻辑错误是指:比如写了个快速排序,但是结果并不对,这就是逻辑错误 《异常体系图》        《异常处理》 《try-catch-finally》    《throws》 注意是在运行异常时,才会自动throws,如果是…

    编程笔记 2022年7月21日
  • Android OkHttp进阶

    一、OkHttp框架流程     整个流程中最重要的两部分是Dispatcher和Interceptor。 Dispatcher事件分发,分为同步队列和异步列两种分发模式: 同步请求执行过程指在同步队列中添加请求事件 --> 移除请求事件 -->…

    编程笔记 2022年7月21日
  • java AQS分析

    AQS是什么 抽象队列同步器, 是JDK juc包下 AbstractQueuedSynchronizer 类的简写,实现了FIFO(First Input First Output)先进先出队列模型用以将获取锁资源的线程进行排队处理,并且提供锁排队线程的唤醒+锁分配机…

    编程笔记 2022年7月21日
  • Java tcp通信

    1. TCP通信原理 TCP(Transmission Control Protocol)协议是面向链接的通信协议,即 数据传输之前,先在发送端和接收端建立逻辑链接,然后再传输数据,它提供 了两台计算机之间可靠无差错的数据传输。 TCP通信中必须…

    编程笔记 2022年7月21日