底层知识
未读
0x202 何为单线程
一个线程包含各种必须的资源,其中程序计数器就负责记录下一条要执行的命令,对于一个线程来说(或者同一个CPU来说),在某一时刻只能执行一个命令,执行完成后才会去执行下一个命令。 单线程指的是程序或进程在任意时刻只能执行一个任务的能力。在单线程环境中,任务按照一定的顺序依次执行,一个任务完成之后,下一个
底层知识
未读
网络连接是如何建立的
监听连接请求: 服务端应用程序调用bind()函数绑定到特定的IP地址和端口,然后调用listen()函数进入监听状态,等待客户端的连接请求。 多个连接请求到来时,操作系统内核通常会维护一个队列来缓存这些未完成连接的请求。这个队列是在TCP/IP协议栈内部实现的,对于Linux系统而言,这是通过内核
底层知识
未读
0x701 ThreadLocal内存泄漏问题
参考原文: https://cloud.tencent.com/developer/article/2355282 https://www.zhihu.com/question/35250439 https://blog.csdn.net/u013543848/article/details/102
底层知识
未读
0x601 线程的死锁
死锁发生的时机 死锁通常发生在以下两种情况之一: 执行前锁定资源 执行过程过程中需求更多资源 执行之前锁定资源 在执行之前,如果线程尝试以不同的顺序锁定多个资源,死锁可能会发生。例如,线程A锁定资源1并尝试锁定资源2,同时线程B锁定资源2并尝试锁定资源1。如果每个线程在尝试锁定第二个资源之前不释放其
底层知识
未读
0x600 线程池技术
为什么使用线程池 在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。因此在大多数并发框架中都会使用线程池来对线程进行管理。 降低系统消耗:通过复用已存在的线程可以减少线程创建的消耗。避免频繁的线程关闭减少线程释放的消耗。 提升系统响应速度:任务到达时可以不用等待线程创建,直
底层知识
未读
0x500 程序进程或线程睡眠
知识来源-我的问题:就是类似于Python中得time.sleep()和Java中得Thread.sleep()这些操作,操作系统是怎么处理的? 调用Python的time.sleep()或者Thread.sleep()函数本质上是想让操作系统CPU暂停执行当前进程/线程一段指定的时间。这些函数背后
底层知识
未读
0x401 文件描述符
复习时提问: 什么是文件描述符? 为什么需要文件描述符? 文件描述符是一个非负整数,那他是否有上限? 有上限,用户可以进行配置 系统级上限和用户级上限 What 是文件描述符? 文件描述符是一个非负整数,用于唯一标识一个打开的文件或其他类型的资源,如套接字、管道等。在类Unix系统中,每个进程都有一
底层知识
未读
0x306 数据拷贝的流程
在没有DMA控制器的情况下,数据从机械硬盘拷贝到移动硬盘的流转过程涉及多个步骤,数据主要以电信号的形式在硬件之间传输。下面是详细的步骤说明: 从机械硬盘读取数据: 当用户发起数据拷贝操作时,操作系统会发出指令,指示机械硬盘读取指定的数据块。 机械硬盘的读头移动到数据所在的磁道,并将磁头读写器放置在正
底层知识
未读
0x305 同步阻塞、同步非阻塞、异步阻塞、异步非阻塞
原文: 深入理解同步阻塞、同步非阻塞、异步阻塞、异步非阻塞_同步阻塞 同步非阻塞 异步阻塞 异步非阻塞-CSDN博客 #question 什么是同步?什么是异步? #question 什么是阻塞 ?什么是非阻塞? 同步、异步、阻塞、非阻塞 前面已经指出了关键性的知识点,下面将直接给本文四个概念的定义
底层知识
未读
0x303 计算机中数据的拷贝操作
数据拷贝是一个过程,不是看到了就知道了,发生了就知道了,数据需要传输,世界中所有的数据都需要传输,一个地方发生了一件事,这就是一个数据,如果这个数据并不向外传输,那么别人是无法知道的,向外传输的方式有很多中,如信号传输、线路传输、文字传输等。在计算机底层硬件也一样:读取数据,经过内部总线传输数据,到
底层知识
未读
0x302 进程或进程的阻塞和运行
本质:进程的状态信息在进程可运行队列可等待队列中切换 Linux内核将一个线程当做进程进行调度。内核维护了一个可运行的进程队列,所有处于TASK_RUNNING状态中的进程都会被放入可运行队列。这个队列的本质是使用双向链表将task_struct链接起来,排队使用CPU时间片,使用完时间片后重新等待
底层知识
未读
0x301 4种主要的IO模型
原文参考: https://blog.csdn.net/ldw201510803006/article/details/119767467 https://www.liaoxuefeng.com/wiki/1016959663602400/1017606916795776 前言 [!QUESTION