编辑
2023-11-11
Tomcat源码学习
00

在Tomcat中,每个HTTP请求都会通过一系列阶段(Phase)来处理。这些阶段由 Pipeline 组织起来。

Tomcat Pipeline 由多个 Valve 组成,每个 Valve 对应一个阶段。请求在每个阶段中都会执行相应的 valve。

Tomcat 默认 Pipeline 中包含了以下几个重要的 Valve:

编辑
2023-11-11
Tomcat源码学习
00
编辑
2023-11-11
操作系统
00

SMP系统和UP系统是指在计算机系统中的不同类型的处理器配置。

SMP(Symmetric Multi-Processors)系统:

  • SMP系统是指具有多个处理器单元的系统。每个处理器单元都可以独立执行任务,并且可以同时访问共享的总线、内存等资源。
  • 在SMP系统中,各个处理器之间没有区别,它们可以同时执行不同的任务,从而提高系统的处理能力和性能。
  • SMP系统通常用于高性能计算、服务器和大型数据库等需要处理大量并发任务的场景。
编辑
2023-11-11
linux
00

Linux的spin_lock是一种自旋锁,用于保护临界区,确保在多线程环境下的原子性操作。下面将详细讲解Linux的spin_lock的底层实现原理。

  1. 概述 自旋锁是一种基于忙等待的锁机制,它通过循环检测锁的状态来实现线程的等待。当一个线程尝试获取自旋锁时,如果锁已经被其他线程占用,该线程会一直循环检测锁的状态,直到锁被释放。
编辑
2023-11-11
linux
00

信号量(Semaphore)是Linux中用于控制并发的一种机制,它的底层实现原理是通过使用内核提供的同步原语来实现的。下面将详细讲解Linux信号量的底层实现原理,并提供相关的源码讲解。

信号量的概述

信号量是一种用于控制并发访问共享资源的机制。它维护了一个计数器,用于表示可用的许可数量。当一个线程需要访问共享资源时,它必须先获取一个许可,如果许可数量为0,则线程会被阻塞,直到有许可可用。当线程完成对共享资源的访问后,它会释放许可,使得其他线程可以获取许可并访问共享资源。