- 《读尽源码 第十八篇》 《读尽源码 第十八篇》
- 《读尽源码 第十七篇》 《读尽源码 第十七篇》
- 一、冯诺依曼体系结构我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。总体来讲:计算机可以分为==输入设备、输出设备、存储器、运算器&&控制器==输入设备:键盘、磁盘、网卡、鼠标、摄像头等输出设备:显示器、磁盘、网卡、各种打印机等存储器:内存(掉电易失)运算器&&控制器:CPU我们知道,CPU的速度是最快的,里面配有寄存器也是最快的,内存是较快... 一、冯诺依曼体系结构我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。总体来讲:计算机可以分为==输入设备、输出设备、存储器、运算器&&控制器==输入设备:键盘、磁盘、网卡、鼠标、摄像头等输出设备:显示器、磁盘、网卡、各种打印机等存储器:内存(掉电易失)运算器&&控制器:CPU我们知道,CPU的速度是最快的,里面配有寄存器也是最快的,内存是较快...
- 我会从程序在 main 函数中执行的顺序,来一步一步的分析源码。每一个函数我都会贴上源码,然后进行分析。我把 main 函数的大概流程画了出来,大家可以参考一下。文章太长发不了,只能分割成两章了,这是第二章。源代码的注释我也放在了附件中,大家需要的可以自行下载。 我会从程序在 main 函数中执行的顺序,来一步一步的分析源码。每一个函数我都会贴上源码,然后进行分析。我把 main 函数的大概流程画了出来,大家可以参考一下。文章太长发不了,只能分割成两章了,这是第二章。源代码的注释我也放在了附件中,大家需要的可以自行下载。
- 我会从程序在 main 函数中执行的顺序,来一步一步的分析源码。每一个函数我都会贴上源码,然后进行分析。我把 main 函数的大概流程画了出来,大家可以参考一下。文章太长发不了,只能分割成两章了,这是第一章。我注释过的代码文件也放在了附件中,有需要的可以自行下载。 我会从程序在 main 函数中执行的顺序,来一步一步的分析源码。每一个函数我都会贴上源码,然后进行分析。我把 main 函数的大概流程画了出来,大家可以参考一下。文章太长发不了,只能分割成两章了,这是第一章。我注释过的代码文件也放在了附件中,有需要的可以自行下载。
- 说到Redis的特点,很容易想到的就是属于Nosql,速度快。再说到Redis为什么速度快,你头脑中第一闪过的可能就是说Redis基于内存、单线程执行了。 基于内存这点不用过多解释,Redis将数据存在内存中,没有了磁盘I/O过程。但要说到单线程为什么快,不熟悉的人可能说不清楚。接下来就说说单线程的Redis为什么快,开发者是怎么设计的呢。 说到Redis的特点,很容易想到的就是属于Nosql,速度快。再说到Redis为什么速度快,你头脑中第一闪过的可能就是说Redis基于内存、单线程执行了。 基于内存这点不用过多解释,Redis将数据存在内存中,没有了磁盘I/O过程。但要说到单线程为什么快,不熟悉的人可能说不清楚。接下来就说说单线程的Redis为什么快,开发者是怎么设计的呢。
- 说到进程管理,后端和运维的同学都不陌生。生产项目以及一些脚本任务都需要进行进程管理。现在市场上用得最多的当属supervisor了,但是它只能运行在 Unix-Like 的系统上,也就是说supervisor不能再windows上运行。 我们这里说的是另外一个进程管理工具PM2,PM2不仅仅适用于Unix-Like系统,同样适用于windows系统。这点对于开发者来说也是个福音。 说到进程管理,后端和运维的同学都不陌生。生产项目以及一些脚本任务都需要进行进程管理。现在市场上用得最多的当属supervisor了,但是它只能运行在 Unix-Like 的系统上,也就是说supervisor不能再windows上运行。 我们这里说的是另外一个进程管理工具PM2,PM2不仅仅适用于Unix-Like系统,同样适用于windows系统。这点对于开发者来说也是个福音。
- 多线程相关知识 多线程相关知识
- 线程通信问题应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止代码结果展示:;代码:1)商品:属性,品牌 ,名字2)线程1:生产者3)线程... 线程通信问题应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止代码结果展示:;代码:1)商品:属性,品牌 ,名字2)线程1:生产者3)线程...
- 线程安全问题出现问题:(1)出现了两个10张票或者3个10张票:;(2)出现0,-1,-2可能:;上面的代码出现问题:出现了重票,错票 --》 线程安全引起的问题原因:多个线程,在争抢资源的过程中,导致共享的资源出现问题。一个线程还没执行完,另一个线程就参与进来了,开始争抢。解决:在我的程序中加入“锁” --》 加同步 --》 同步监视器一、方法1:同步代码块【1】同步代码块演示1:pack... 线程安全问题出现问题:(1)出现了两个10张票或者3个10张票:;(2)出现0,-1,-2可能:;上面的代码出现问题:出现了重票,错票 --》 线程安全引起的问题原因:多个线程,在争抢资源的过程中,导致共享的资源出现问题。一个线程还没执行完,另一个线程就参与进来了,开始争抢。解决:在我的程序中加入“锁” --》 加同步 --》 同步监视器一、方法1:同步代码块【1】同步代码块演示1:pack...
- 线程的生命周期和常见方法一、线程的生命周期线程声明周期:线程开始 --》 线程消亡线程经历哪些阶段: ;二、线程常见方法(1)start() : 启动当前线程,表面上调用start方法,实际在调用线程里面的run方法(2)run() : 线程类 继承 Thread类 或者 实现Runnable接口的时候,都要重新实现这个run方法,run方法里面是线程要执行的内容(3)currentThre... 线程的生命周期和常见方法一、线程的生命周期线程声明周期:线程开始 --》 线程消亡线程经历哪些阶段: ;二、线程常见方法(1)start() : 启动当前线程,表面上调用start方法,实际在调用线程里面的run方法(2)run() : 线程类 继承 Thread类 或者 实现Runnable接口的时候,都要重新实现这个run方法,run方法里面是线程要执行的内容(3)currentThre...
- 创建线程的三种方式一、继承Thread类在学习多线程之前,以前的代码是单线程的吗?不是,以前也是有三个线程同时执行的。;现在我想自己制造多线程 --》 创建线程 ?线程类 --》 线程对象;package com.lanson.test01;/** * @author : Lansonli * 线程类叫:TestThread,不是说你名字中带线程单词你就具备多线程能力了(争抢资源能力) * ... 创建线程的三种方式一、继承Thread类在学习多线程之前,以前的代码是单线程的吗?不是,以前也是有三个线程同时执行的。;现在我想自己制造多线程 --》 创建线程 ?线程类 --》 线程对象;package com.lanson.test01;/** * @author : Lansonli * 线程类叫:TestThread,不是说你名字中带线程单词你就具备多线程能力了(争抢资源能力) * ...
- 多线程与程序、进程、线程之间概念详解一、程序、进程、线程1、程序(program)是为完成特定任务、用某种语言编写的一组指令的集合,是一段静态的代码。 (程序是静态的)2、进程(process)是程序的一次执行过程。正在运行的一个程序,进程作为资源分配的单位,在内存中会为每个进程分配不同的内存区域。 (进程是动态的)是一个动的过程 ,进程的生命周期 : 有它自身的产生、存在和消亡的过程3、... 多线程与程序、进程、线程之间概念详解一、程序、进程、线程1、程序(program)是为完成特定任务、用某种语言编写的一组指令的集合,是一段静态的代码。 (程序是静态的)2、进程(process)是程序的一次执行过程。正在运行的一个程序,进程作为资源分配的单位,在内存中会为每个进程分配不同的内存区域。 (进程是动态的)是一个动的过程 ,进程的生命周期 : 有它自身的产生、存在和消亡的过程3、...
- 在上一篇文章`《驱动开发:内核封装WSK网络通信接口》`中,`LyShark`已经带大家看过了如何通过WSK接口实现套接字通信,但WSK实现的通信是内核与内核模块之间的,而如果需要内核与应用层之间通信则使用TDK会更好一些因为它更接近应用层,本章将使用TDK实现,TDI全称传输驱动接口,其主要负责连接`Socket`和协议驱动,用于实现访问传输层的功能,该接口比`NDIS`更接近于应用层,在早期W 在上一篇文章`《驱动开发:内核封装WSK网络通信接口》`中,`LyShark`已经带大家看过了如何通过WSK接口实现套接字通信,但WSK实现的通信是内核与内核模块之间的,而如果需要内核与应用层之间通信则使用TDK会更好一些因为它更接近应用层,本章将使用TDK实现,TDI全称传输驱动接口,其主要负责连接`Socket`和协议驱动,用于实现访问传输层的功能,该接口比`NDIS`更接近于应用层,在早期W
- 本章`LyShark`将带大家学习如何在内核中使用标准的`Socket`套接字通信接口,我们都知道`Windows`应用层下可直接调用`WinSocket`来实现网络通信,但在内核模式下应用层API接口无法使用,内核模式下有一套专有的`WSK`通信接口,我们对WSK进行封装,让其与应用层调用规范保持一致,并实现内核与内核直接通过`Socket`通信的案例。 本章`LyShark`将带大家学习如何在内核中使用标准的`Socket`套接字通信接口,我们都知道`Windows`应用层下可直接调用`WinSocket`来实现网络通信,但在内核模式下应用层API接口无法使用,内核模式下有一套专有的`WSK`通信接口,我们对WSK进行封装,让其与应用层调用规范保持一致,并实现内核与内核直接通过`Socket`通信的案例。
上滑加载中
推荐直播
-
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
2025/01/10 周五 15:30-17:30
MindStudio布道师
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
回顾中 -
用代码全方位驱动 OBS 存储
2025/01/14 周二 16:30-18:00
阿肯 华为云生态技术讲师
如何用代码驱动OBS?常用的数据管理,对象清理,多版本对象访问等应该如何编码?本期课程一一演示解答。
即将直播 -
GaussDB数据库开发
2025/01/15 周三 16:00-17:30
Steven 华为云学堂技术讲师
本期直播将带你了解GaussDB数据库开发相关知识,并通过实验指导大家利用java基于JDBC的方式来完成GaussD数据库基础操作。
去报名
热门标签