IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Process

共 4 篇相关文章

IT 累计浏览 5,357

进程和线程关系及区别

这篇讲的是操作系统中进程与线程的基础概念辨析。作者从定义出发,开篇就给出了明确定义:进程是资源分配和调度的独立单位,线程则是CPU调度的基本单位,且线程几乎不拥有系统资源,仅保留运行必需的最小集。 文章的核心在于对比二者的根本差异。关键区别在于资源管理方式:进程拥有独立的地址空间,因此一个进程崩溃不会波及其他,健壮性更高但切换开销大;而同一进程内的线程共享全部内存资源,这提升了并发效率与数据共享的便利性,但一个线程的异常往往会导致整个进程终止。 这种设计上的权衡,直接导向了不同的适用场景。对于需要高并发、共享数据且追求执行效率的任务,多线程是更优的选择。反之,对于需要更强隔离性、运行于多台机器或更看重稳定性的场景,多进程模型则更为可靠。文章最后也点明了线程执行开销小但不利于资源保护,进程则相反的特点。

IT 累计浏览 3,901

变量在内存中的位置

这篇讲的是程序运行时变量在内存中的具体栖身之所,帮你彻底搞懂数据在底层是如何安放的。 作者从进程的逻辑内存空间出发,清晰地划分了几个关键区域。全局变量、静态变量住在相对安稳的数据段;而通过 malloc 分配的内存则在堆区生长;最有趣的可能是栈,所有本地变量都在这里快速地分配与回收,文章特别点出“栈上的本地变量可能会是个随机数”,形象地解释了其内存值未经初始化的不确定状态。此外,代码段、共享库以及 mmap 映射的内存也各有其位。 理解这个内存地图,不仅能让你明白变量作用域和生命周期的物理基础,也能在排查野指针、内存泄漏等问题时,多一份定位的直觉。

IT 累计浏览 7,774

高性能web服务器-读书笔记

这篇笔记聚焦于高性能Web服务器中一个基础但关键的架构选择:进程模型。作者深入剖析了两种主流的进程处理方式——每连接一个进程(fork)与预派生进程池(prefork)的核心差异。 对于前者,每来一个新连接就fork出一个新子进程,模型简单直观,隔离性好,但频繁创建销毁进程带来的开销在高并发下会成为瓶颈。后者则采取另一种策略:服务器启动时就预先创建好一定数量的子进程组成“进程池”,后续连接由这些进程轮流接管处理,避免了运行时频繁创建进程的开销,但需要更精细的进程调度与状态管理。 文章指出,prefork模型因其稳定的资源占用和较低的启动延迟,通常更适用于需要处理大量长连接或有状态服务的场景,比如传统的CGI应用。而理解这两种模型的取舍,是优化服务器性能的第一步。笔记的剖析让这些经典模式背后的工程考量变得清晰。

IT 累计浏览 5,592

有道实习生笔试总结

这篇文章记录了作者作为实习生参加有道公司笔试后的深度总结。从背景入手,笔试是技术岗位招聘的关键环节,旨在评估候选人的编程基础和工程思维。作者详细描述了笔试的几个模块:选择题涵盖计算机网络和操作系统知识,编程题则聚焦于数据结构和算法。他特别提到一道动态规划题目,涉及状态转移方程的优化,通过实例展示了如何减少时间复杂度。此外,系统设计题要求设计一个高并发的短链服务,作者分享了关于负载均衡和缓存策略的思考过程。通过这次笔试,作者发现实战经验比理论更重要,建议读者在刷题之余参与开源项目。文章最后强调,笔试总结不仅是回顾,更是对技术栈