
杂记
文章平均质量分 84
搬砖大师傅
这个作者很懒,什么都没留下…
展开
-
【杂记】异步调用
(1)join()是实例方法不是静态方法,需要使用线程对象去调用,如thread.join()。(2)调用join()时,不是thread所指向的目标线程阻塞,而是当前线程阻塞。(3)只有等到thread所指向的线程执行完成或者超时,当前线程才能启动执行。原创 2023-05-31 21:37:58 · 539 阅读 · 0 评论 -
【杂记】高并发的几种设计模式
单例模式是一种常见的设计模式,一般用于安全对象管理,比如XML读写实例、系统配置实例、任务调度实例、数据库连接池实例等。单例模式一般分为懒汉式、饿汉式。饿汉式单例在类加载时候,就直接初始化。懒汉式,就是在类使用的时候,才对单例进行初始化。原创 2023-05-28 16:41:29 · 1162 阅读 · 0 评论 -
【杂记】JUC高并发容器
其主要的思想是:如果有多个访问器,如果有多个访问器(Accessor)访问一个资源(如内存或者磁盘上的数据存储),它们会共同获取相同的指针指向相同的资源,只要有一个修改器(Mutator)需要修改该资源,系统就会复制一份专用副本(Private Copy)给该修改器,而其他访问器所见到的最初资源仍然保持不变,修改的过程对其他访问器都是透明的(Transparently)。COW的主要优点是如果没有修改器去修改资源,就不会创建副本,因此多个访问器可以共享同一份资源。原创 2023-05-24 21:37:14 · 707 阅读 · 0 评论 -
【杂记】AQS同步器
(1)CAS恶性空自旋会浪费大量的CPU资源;(2)在SMP架构的CPU上会导致"总线风暴";原创 2023-05-18 22:05:36 · 441 阅读 · 0 评论 -
【杂记】显式锁
JDK 5版本引入了java.util.concurrent并发包,简称为JUC包,里面提供了各种高并发工具类,通过此JUC工具包可以在Java代码中实现功能非常强大的多线程并发操作。所以,Java显式锁也叫JUC显式锁。原创 2023-05-13 16:54:52 · 586 阅读 · 0 评论 -
【杂记】有序性和可见性
按照数据读取顺序和与CPU内核结合的紧密程度,CPU高速缓存有L1和L2高速缓存(即一级高速缓存和二级缓存高速),部分高端CPU还具有L3高速缓存(即三级高速缓存)。每一级高速缓存中所存储的数据都是下一级高速缓存的一部分,越靠近CPU的高速缓存读取越快,容量也越小。所以L1高速缓存容量很小,但存取速度最快,并且紧靠着使用它的CPU内核。L2容量大一些,存取速度也慢一些,并且仍然只能被一个单独的CPU核使用。L3在现代多核CPU中更普遍,容量更大、读取速度更慢些,能被同一个CPU芯片板上的所有CPU内核共享。原创 2023-04-26 22:02:43 · 457 阅读 · 0 评论 -
【杂记】CAS 操作
JVM的synchronized重量级锁涉及操作系统内核态下互斥锁的使用,因此其线程阻塞和唤醒都涉及进程在用户态到内核态的频繁切换,导致重量级锁开销大,性能低,而JVM的synchronized轻量级锁使用CAS进行自旋抢锁,CAS是CPU指令级的原子操作,并处于用户态下,所有JVM轻量级锁的开销较小。由于CAS的操作具有原子性,所以在使用CAS方法操作数据时,并不会造成数据不一致性的问题。原创 2023-04-24 21:40:23 · 942 阅读 · 0 评论 -
【杂记】java 内置锁
java 锁原创 2023-04-18 21:33:26 · 642 阅读 · 0 评论 -
【杂记】线程池杂记
线程池以及线程原创 2023-04-05 17:01:31 · 332 阅读 · 0 评论