孤舟笔记

落魄江湖行13 天前
春招·孤舟笔记·io和nio的区别
孤舟笔记 IO 与网络编程篇三 IO和NIO的区别是什么?从阻塞到非阻塞的范式革命面试官问"IO 和 NIO 的区别",很多人只能说出"IO 是阻塞的,NIO 是非阻塞的"。但追问"阻塞到底是什么意思"、“NIO 的 Selector 怎么实现非阻塞”、“NIO 就一定比 IO 快吗”,就答不全了。
落魄江湖行18 天前
thread·java并发·春招·孤舟笔记
孤舟笔记 并发篇十八 为什么启动线程不能直接调用run()方法?调用两次start()又会怎样?这个设计藏着大智慧新手写多线程,最容易犯两个错:一是直接调 run() 而不是 start(),二是同一个线程对象调两次 start()。前者"线程"根本没启动,后者直接抛异常。但你有没有想过,为什么 Java 要这么设计?
落魄江湖行19 天前
java并发·春招·孤舟笔记·volatile关键字
孤舟笔记 并发篇二十九 volatile关键字有什么用?它的实现原理是什么?面试必问的轻量级同步机制面试问并发,volatile 几乎必问。多数人能说出"保证可见性",但追问"什么是指令重排序"、“volatile 怎么保证有序性”、“为什么 volatile 不能保证原子性”,就答不上来了。
落魄江湖行19 天前
java并发·春招·孤舟笔记·wait和sleep
孤舟笔记 并发篇二十八 wait和sleep是否会触发锁的释放及CPU资源的释放?这个区别面试必考wait 和 sleep 都能让线程"停下来",但它们对锁和 CPU 的处理完全不同。面试官最爱问:“wait 释放锁吗?sleep 释放锁吗?它们释放 CPU 吗?”
落魄江湖行19 天前
java并发·春招·孤舟笔记·线程池是如何回收线程的
孤舟笔记 并发篇二十二 线程池是如何回收线程的?核心线程和非核心线程的回收逻辑大不相同线程池里那么多线程,什么时候回收?是所有线程都回收,还是只回收一部分?核心线程真的永远不会被回收吗?这些问题不搞清楚,线上线程数暴涨你还不知道为什么。
落魄江湖行20 天前
java并发·春招·孤舟笔记·当任务数超过核心线程数时
孤舟笔记 并发篇二十五 当任务数超过核心线程数时,如何让任务不进入队列?线程池调优的经典问题默认的线程池任务提交流程是:核心线程 → 队列 → 非核心线程 → 拒绝策略。但有些人想让任务跳过队列,直接创建非核心线程——这该怎么做?
落魄江湖行20 天前
java并发·春招·孤舟笔记
孤舟笔记 并发篇二十三 线程池是如何实现线程复用的?Worker循环取任务的秘密远比你想象的精巧每个 Thread 只能 start 一次,那线程池怎么做到"复用"线程的?一个线程执行完任务为什么没有退出?它是怎么拿到下一个任务的?
落魄江湖行22 天前
mysql·java并发·春招·孤舟笔记
孤舟笔记 并发篇十一 行锁、间隙锁、临键锁傻傻分不清?MySQL InnoDB的锁其实就这三板斧面试被问到"MySQL 有哪些锁",你脱口而出"行锁、表锁"。面试官追问"间隙锁呢?临键锁呢?",你瞬间懵了。更头疼的是,这三个锁的关系像俄罗斯套娃,一个套一个,到底谁包含谁?
落魄江湖行22 天前
java并发·春招·孤舟笔记
孤舟笔记 并发篇十 ReentrantLock的公平锁和非公平锁是怎么实现的?这个设计藏着大智慧你知道 new ReentrantLock(true) 和 new ReentrantLock(false) 的区别吗?一个参数,天壤之别。一个是"先来先得",一个是"谁能抢到归谁"。面试官最爱问的就是:公平锁和非公平锁底层到底怎么实现的?为什么默认是非公平锁?
我是有底线的