- 1. 什么是IO多路转接IO操作方式有两种阻塞等待 - 优点:不占用CPU时间片- 缺点:同一时刻只能处理一个操作,效率低下非阻塞(忙轮询) - 优点是提高了程序的执行效率,缺点是需要占用更多的CPU和系统资源 - 只有一个任务时 - 多个任务对于非阻塞方式多任务的场景,也就是上图中的情况,解决方法是使用IO多路转接技术,常用的IO多路转接技术包括select/poll/epoll。s... 1. 什么是IO多路转接IO操作方式有两种阻塞等待 - 优点:不占用CPU时间片- 缺点:同一时刻只能处理一个操作,效率低下非阻塞(忙轮询) - 优点是提高了程序的执行效率,缺点是需要占用更多的CPU和系统资源 - 只有一个任务时 - 多个任务对于非阻塞方式多任务的场景,也就是上图中的情况,解决方法是使用IO多路转接技术,常用的IO多路转接技术包括select/poll/epoll。s...
- 在前面讲解TCP状态转换中提到过一个2MSL等待时间,如果在通信过程中,server主动断开连接,那么server进程会处于TIME_WAIT状态并等待2MSL的时间,此时server进程还没终止,端口号port还被该进程占用呢,所以当server主动断开连接时,如果立即再次启动server,就会提示端口已经被使用,等待2MSL后才可以再次启动server。请看下图端口复用常见的用途包括:... 在前面讲解TCP状态转换中提到过一个2MSL等待时间,如果在通信过程中,server主动断开连接,那么server进程会处于TIME_WAIT状态并等待2MSL的时间,此时server进程还没终止,端口号port还被该进程占用呢,所以当server主动断开连接时,如果立即再次启动server,就会提示端口已经被使用,等待2MSL后才可以再次启动server。请看下图端口复用常见的用途包括:...
- 什么是并发服务器当涉及到构建高性能的服务器应用程序时,我们通常会考虑使用并发服务器来处理多个客户端请求。在并发服务器中,多进程和多线程是两种常见的并发模型,它们都有各自的优点和适用场景。本文将介绍多进程和多线程并发服务器的基础知识。多进程并发服务器多进程并发服务器通过创建多个子进程来处理客户端请求。每个子进程是操作系统中独立运行的单位,拥有自己的内存空间和资源。当有新的客户端连接请求到达时... 什么是并发服务器当涉及到构建高性能的服务器应用程序时,我们通常会考虑使用并发服务器来处理多个客户端请求。在并发服务器中,多进程和多线程是两种常见的并发模型,它们都有各自的优点和适用场景。本文将介绍多进程和多线程并发服务器的基础知识。多进程并发服务器多进程并发服务器通过创建多个子进程来处理客户端请求。每个子进程是操作系统中独立运行的单位,拥有自己的内存空间和资源。当有新的客户端连接请求到达时...
- shm_open 是一个用于在 POSIX(可移植操作系统接口)系统中创建和打开共享内存对象的系统调用。共享内存是一种进程间通信(IPC)机制,允许多个进程访问同一个内存段,从而实现数据的快速交换和同步。共享内存允许多个进程共享同一个内存段。shm_open(const char *name, int oflag, mode_t mode); 创建或打开一个共享内存对象mmap(void... shm_open 是一个用于在 POSIX(可移植操作系统接口)系统中创建和打开共享内存对象的系统调用。共享内存是一种进程间通信(IPC)机制,允许多个进程访问同一个内存段,从而实现数据的快速交换和同步。共享内存允许多个进程共享同一个内存段。shm_open(const char *name, int oflag, mode_t mode); 创建或打开一个共享内存对象mmap(void...
- 1.Hashtable 定义Hashtable 是 Java 中的一个散列表实现,继承自 Dictionary 类,实现了 Map 接口。Hashtable 使用键值对的方式来存储数据,其中每个键对应唯一的值,即 key-value 对。public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Clon... 1.Hashtable 定义Hashtable 是 Java 中的一个散列表实现,继承自 Dictionary 类,实现了 Map 接口。Hashtable 使用键值对的方式来存储数据,其中每个键对应唯一的值,即 key-value 对。public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Clon...
- 1.ArrayDeque 类特点:由数组组成的双端队列。没有容量限制,根据需要扩容。不是线程安全的。禁止插入 null 元素。当用作栈时,比栈速度快,当用作队列时,速度比 LinkList 快。大部分方法的算法时间复杂度为 O(1)。remove、removeFirstOccurrence、removeLastOccurrence、contains、remove 和批量操作的算法时间复杂度... 1.ArrayDeque 类特点:由数组组成的双端队列。没有容量限制,根据需要扩容。不是线程安全的。禁止插入 null 元素。当用作栈时,比栈速度快,当用作队列时,速度比 LinkList 快。大部分方法的算法时间复杂度为 O(1)。remove、removeFirstOccurrence、removeLastOccurrence、contains、remove 和批量操作的算法时间复杂度...
- 1.ConcurrentLinkedQueue 图解 2.ConcurrentLinkedQueue 原理ConcurrentLinked 是由链表结构组成的线程安全的先进先出无界队列。当多线程要共享访问集合时,ConcurrentLinkedQueue 是一个比较好的选择。不允许插入 null 元素支持非阻塞地访问并发安全的队列,不会抛出 ConcurrentModifiationExc... 1.ConcurrentLinkedQueue 图解 2.ConcurrentLinkedQueue 原理ConcurrentLinked 是由链表结构组成的线程安全的先进先出无界队列。当多线程要共享访问集合时,ConcurrentLinkedQueue 是一个比较好的选择。不允许插入 null 元素支持非阻塞地访问并发安全的队列,不会抛出 ConcurrentModifiationExc...
- 1.TransferQueue 简介如果有消费者正在获取元素,则将队列中的元素传递给消费者。如果没有消费者,则等待消费者消费。我把它称作使命必达队列,必须将任务完成才能返回。 2.理解三个方法针对TransferQueue的transfer方法:圆通快递员要将小明的 2 个快递送货到门,韵达快递员也想将小明的 2 个快递送货到门。小明一次只能拿一个,快递员必须等小明拿了一个后,才能继续给第... 1.TransferQueue 简介如果有消费者正在获取元素,则将队列中的元素传递给消费者。如果没有消费者,则等待消费者消费。我把它称作使命必达队列,必须将任务完成才能返回。 2.理解三个方法针对TransferQueue的transfer方法:圆通快递员要将小明的 2 个快递送货到门,韵达快递员也想将小明的 2 个快递送货到门。小明一次只能拿一个,快递员必须等小明拿了一个后,才能继续给第...
- 1.BlockingQueue 接口定义阻塞队列:BlockQueue 满了,PUT 操作被阻塞BlockQueue 为空,Take 操作被阻塞阻塞队列为空的情况:BlockingQueue(阻塞队列)也是一种队列,支持阻塞的插入和移除方法。阻塞的插入:当队列满时,队列会阻塞插入元素的线程,直到队列不满。阻塞的移除:当队列为空,获取元素的线程会等待队列变为非空。应用场景:生产者和消费者,生... 1.BlockingQueue 接口定义阻塞队列:BlockQueue 满了,PUT 操作被阻塞BlockQueue 为空,Take 操作被阻塞阻塞队列为空的情况:BlockingQueue(阻塞队列)也是一种队列,支持阻塞的插入和移除方法。阻塞的插入:当队列满时,队列会阻塞插入元素的线程,直到队列不满。阻塞的移除:当队列为空,获取元素的线程会等待队列变为非空。应用场景:生产者和消费者,生...
- 性能工具之JMeter + Grafana + InfluxDB 性能平台搭建 性能工具之JMeter + Grafana + InfluxDB 性能平台搭建
- 在Linux操作系统中,进程的优先级对于系统的性能和资源管理至关重要。Linux提供了一些工具和命令,其中包括 nice 和 renice,用于管理和调整进程的优先级。本文将详细介绍在Linux中使用这两个命令来更改进程的优先级。 查看 Linux 系统上当前正在运行哪些进程在Linux系统中,ps命令是一个非常有用的工具,用于显示当前系统中运行的进程的相关信息。 常用选项:-e:显示所有进... 在Linux操作系统中,进程的优先级对于系统的性能和资源管理至关重要。Linux提供了一些工具和命令,其中包括 nice 和 renice,用于管理和调整进程的优先级。本文将详细介绍在Linux中使用这两个命令来更改进程的优先级。 查看 Linux 系统上当前正在运行哪些进程在Linux系统中,ps命令是一个非常有用的工具,用于显示当前系统中运行的进程的相关信息。 常用选项:-e:显示所有进...
- 1 简介总是有理由了解更多关于Go 的并发模型。并发似乎是围绕该语言的一大流行词。正是 Rob Pike 的 Go 并发模式视频让我认为需要这门语言。这些不同似乎让人凌乱,我们从几个例子来找出线头,深入认识go的并发方式。要理解 Go 如何使编写并发程序变得更容易并且不易出错,我们首先需要了解什么是并发程序以及由此类程序产生的问题。在这篇文章中,我不会谈论 CSP(通信顺序流程),虽然它是... 1 简介总是有理由了解更多关于Go 的并发模型。并发似乎是围绕该语言的一大流行词。正是 Rob Pike 的 Go 并发模式视频让我认为需要这门语言。这些不同似乎让人凌乱,我们从几个例子来找出线头,深入认识go的并发方式。要理解 Go 如何使编写并发程序变得更容易并且不易出错,我们首先需要了解什么是并发程序以及由此类程序产生的问题。在这篇文章中,我不会谈论 CSP(通信顺序流程),虽然它是...
- 进程间通信(Inter-Process Communication, IPC)是计算机科学中一个关键的主题,涉及如何在不同进程之间交换数据和信息。进程是操作系统分配资源的基本单位,它们彼此独立运行,然而在许多情况下,不同的进程需要相互通信与协作。IPC 技术提供了多种方法和机制来实现这一目标。本文将详细探讨常见的 IPC 技术,包括其原理、优缺点及应用场景。1. 共享内存共享内存是最快的一种... 进程间通信(Inter-Process Communication, IPC)是计算机科学中一个关键的主题,涉及如何在不同进程之间交换数据和信息。进程是操作系统分配资源的基本单位,它们彼此独立运行,然而在许多情况下,不同的进程需要相互通信与协作。IPC 技术提供了多种方法和机制来实现这一目标。本文将详细探讨常见的 IPC 技术,包括其原理、优缺点及应用场景。1. 共享内存共享内存是最快的一种...
- 在现代计算机系统中,内存管理是至关重要的一个方面。特别是在 Linux 环境下,系统管理员和开发人员经常需要深入了解每个进程和每个用户的内存使用情况,以便优化系统性能、诊断问题并进行资源分配。为了实现这一目标,Smem 是一个非常有用的工具,它提供了一种简单而有效的方法来查询系统中的内存使用情况。 什么是 Smem?Smem 是一个用于查询 Linux 系统中每个进程和每个用户的内存消耗的工... 在现代计算机系统中,内存管理是至关重要的一个方面。特别是在 Linux 环境下,系统管理员和开发人员经常需要深入了解每个进程和每个用户的内存使用情况,以便优化系统性能、诊断问题并进行资源分配。为了实现这一目标,Smem 是一个非常有用的工具,它提供了一种简单而有效的方法来查询系统中的内存使用情况。 什么是 Smem?Smem 是一个用于查询 Linux 系统中每个进程和每个用户的内存消耗的工...
- Redis 是一种广泛使用的开源内存数据结构存储系统,以其高性能和简单性而闻名。自发布以来,Redis 一直采用单线程模型来处理客户端请求。尽管单线程模型已经能够提供非常高的性能,但随着硬件和应用需求的变化,单线程的局限性逐渐显现。为了进一步提升性能并应对日益复杂的使用场景,Redis 6.0 引入了多线程支持。本文将深入探讨 Redis 6.0 引入多线程的原因及其优势。Redis 单线程... Redis 是一种广泛使用的开源内存数据结构存储系统,以其高性能和简单性而闻名。自发布以来,Redis 一直采用单线程模型来处理客户端请求。尽管单线程模型已经能够提供非常高的性能,但随着硬件和应用需求的变化,单线程的局限性逐渐显现。为了进一步提升性能并应对日益复杂的使用场景,Redis 6.0 引入了多线程支持。本文将深入探讨 Redis 6.0 引入多线程的原因及其优势。Redis 单线程...
上滑加载中
推荐直播
-
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中 -
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
回顾中
热门标签