上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 17 下一页
  2023年3月30日
摘要: Java 线程状态 (6 种) Java线程的生命周期分为:NEW(初始化状态)、RUNNABLE(可运行状态/运行状态)、BLOCKED(阻塞状态)、WAITING(等待状态)、TIMED_WAITING(有时限的等待)、TERMINATED(终止状态)。 可以看下源码中线程State的枚举类: 阅读全文
posted @ 2023-03-30 00:44 zhengbiyu 阅读(3) 评论(0) 推荐(0) 编辑
摘要: AQS aqs全称为AbstractQueuedSynchronizer,它提供了一个FIFO队列,可以看成是一个用来实现同步锁以及其他涉及到同步功能的核心组件,常见的有:ReentrantLock、CountDownLatch等。AQS是一个抽象类,主要是通过继承的方式来使用,它本身没有实现任何的 阅读全文
posted @ 2023-03-30 00:43 zhengbiyu 阅读(6) 评论(0) 推荐(0) 编辑
摘要: synchronized是Java内置的一个关键字,Lock是是一个Java接口。 synchronized无法判断获取锁的状态,而lock锁可以判断是否获取到了锁。 synchronized会自动释放锁,而lock必须手动释放锁。如果不释放就会变成死锁。 synchronized 可重入锁,不可以 阅读全文
posted @ 2023-03-30 00:41 zhengbiyu 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 运行时,会在栈中产生两个引用,指向堆中相应的对象。 可以看到,ThreadLocalMap使用ThreadLocal的弱引用作为key,这样一来,当ThreadLocal ref和ThreadLocal之间的强引用断开 时候,即ThreadLocal ref被置为null,下一次GC时,thread 阅读全文
posted @ 2023-03-30 00:34 zhengbiyu 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 读操作步骤(根据文档id查询): 客户端发送Get请求到NODE1。 NODE1使用文档的_id决定文档属于shard0。shard0的所有分片位于所有3个节点上。这次,它将请求路由至NODE2。 NODE2将文档返回给NODE1,NODE1将文档返回给客户端。 ES读数据底层原理: 客户端发送请求 阅读全文
posted @ 2023-03-30 00:17 zhengbiyu 阅读(11) 评论(0) 推荐(0) 编辑
  2023年3月29日
摘要: 线程池的生命周期,总共有五种状态 RUNNING :能接受新提交的任务,并且也能处理任务队列中的任务; SHUTDOWN:关闭状态,不再接受新提交的任务,但却可以继续处理阻塞队列中已保存的任务。在线程池处于 RUNNING 状态时,调用 shutdown()方法会使线程池进入到该状态。(finali 阅读全文
posted @ 2023-03-29 23:16 zhengbiyu 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个: 原子性:确保线程互斥的访问同步代码; 可见性:保证共享变量的修改能够及时可见,其实是通过Java内存模型中的 “对一个变量unlock操作之前,必须要同步到 阅读全文
posted @ 2023-03-29 22:56 zhengbiyu 阅读(41) 评论(0) 推荐(0) 编辑
摘要: volatile是 Java 中的一个关键字,当一个变量是共享变量,同时被 volatile 修饰当值被更改的时候,其他线程再读取该变量的时候可以保证能获取到修改后的值,通过 JMM 屏蔽掉各种硬件和操作系统的内存访问差异 以及 CPU 多级缓存等导致的数据不一致问题。 需要注意的是,volatil 阅读全文
posted @ 2023-03-29 21:58 zhengbiyu 阅读(26) 评论(0) 推荐(0) 编辑
摘要: Happens-Before 程序顺序原则:如果程序操作 A 在操作 B 之前,那么多线程中的操作依然是 A 在 B 之前执行。 监视器锁原则:在监视器锁上的解锁操作必须在同一个监视器上的加锁操作之前执行。 volatile 变量原则:对 volatile 修饰的变量写入操作必须在该变量的读操作之前 阅读全文
posted @ 2023-03-29 21:52 zhengbiyu 阅读(15) 评论(0) 推荐(0) 编辑
摘要: JMM(Java Memory Model,Java 内存模型) JMM 是一个抽象概念,由于 CPU 多核多级缓存、为了优化代码会发生指令重排的原因,JMM 为了屏蔽细节,定义了一套规范,保证最终的并发安全。它抽象出了工作内存与主内存的概念,并且通过八个原子操作以及内存屏障保证了原子性、内存可见性 阅读全文
posted @ 2023-03-29 21:50 zhengbiyu 阅读(66) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 17 下一页