摘要:
网络模型 BIO-传统阻塞IO 1.单线程阻塞模式(BIO) 整个服务只有一个线程,这个线程不仅负责连接管理(accept)也负责后续的读写操作(read/write)。串行化的操作在有多个连接来临的时候,需要等待上一个连接的读写操作完成,读写操作需要磁盘IO比较耗时,因此性能极其低下,且如果有一个 阅读全文
posted @ 2025-11-17 14:40
onAcorner
阅读(288)
评论(0)
推荐(1)
一、前言 ReentrantLock 是基于 AQS 实现的同步框架,关于 AQS 的源码在 这篇文章 已经讲解过,ReentrantLock 的主要实现都依赖AQS,因此在阅读本文前应该先了解 AQS 机制。本文并不关注 ReentrantLock 如何使用,只叙述其具体实现。 二、Reentra 阅读全文
一、前言 AQS 是一个同步框架,关于同步在操作系统(一)—— 进程同步 中对进程同步做了些概念性的介绍,我们了解到进程(线程同理,本文基于 JVM 讲解,故下文只称线程)同步的工具有很多:Mutex、Semaphore、Monitor。但是Mutex 和 Semaphore 作为低级通信存在不少缺 阅读全文
前言 上篇主要对 Synchronized 的锁实现原理 Monitor 机制进行了介绍,由于 Monitor 基于操作系统调用,上下文切换导致开销大,在竞争不激烈时性能不算很好, 在 jdk6 之后进了系列优化。前文对优化措施进行了简单介绍,下面将一一介绍这些优化的细节,行文思路大致如下: 从重量 阅读全文
一、 什么是锁? 在多线程中,多个线程同时对某一个资源进行访问,容易出现数据不一致问题,为保证并发安全,通常会采取线程互斥的手段对线程进行访问限制,这个互斥的手段就可以称为锁。锁的本质是状态+指针,当一个线程进入临界区前需要先修改状态,表明已加锁,并且指针指向加锁的线程。后续线程在进入临界区时同样需 阅读全文