自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Linux高级开发的博客

关于C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术分享。

  • 博客(135)
  • 收藏
  • 关注

原创 一个10年C++程序员对技术和业务的感悟,献给还在迷茫中的你

我越来越担心我作为一个C++程序员的未来。恍然间,发现自己在这个行业里已经摸爬滚打了五年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作的过程中却遭到了重大的挫折。详细过程我就不再叙述,在此,只想给大家说一说被拒绝的原因,看看大家有没有相似的经历,和类似的感悟。面试官对我的答复大致是这样的,我们不需要熟练工,我们需要在某领域拥有超过常人的积...

2020-08-04 22:15:08 25732 39

原创 Linux后台服务器架构师开发学习资料

King-90分钟搞定tcp/ip协议栈链接:https://pan.baidu.com/s/1iWU4uLVHeRO0o_ciXK0rIA 密码:krkgLee-高性能服务器为什么需要内存池链接:https://pan.baidu.com/s/1oSOLGmTE3LwMjS5LDXWd-w 密码:2hjoKing-支撑亿级io的底层基石 epoll实战揭秘链接:https://...

2019-07-11 10:47:01 1036

原创 c/c++Linux后台服务开发全套视频收录(持续更新中)

1.微信面试心得 — 后端服务性能内参链接:https://pan.baidu.com/s/1RGU32Z7g0RN8p26qVAwhUQ 密码:6ua92.zero down-time更新服务程序链接:https://www.bilibili.com/video/av574291993.手把手带你实现线程池https://www.bilibili.com/video/av57...

2019-07-08 15:10:04 4807 2

原创 linux服务器高效内存池的具体实现(含实例源码)

linux服务器开发相关视频解析:后台开发第174讲|nginx源码分析之内存池与线程池|1. nginx的使用场景 2. nginx源码 内存池,线程池,日志 3. nginx的多进程网络实现c/c++ linux服务器开发免费学习地址:c/c++ linux后台服务器高级架构师在编程过程中,尤其是对于C语言开发者,其实编程就是在使用内存,不停地变化内存中的数据。当我们想开辟一片新的内存使用时,就会使用malloc实现。但是通过查阅很多资料,发现频繁的使用malloc并不是很好的..

2021-05-06 17:02:34 12

原创 TCP传输层面试中常问的问题汇总(你所不知道的传输层)

c/c++ linux服务器开发相关视频解析:后台开发第153讲|手写一个用户态网络协议栈,瞬间提升你网络功底|1. 网卡基础架构 2. netmap/dpdk的实现 3. 网络协议栈实战c/c++ linux服务器开发免费学习地址:c/c++ linux后台服务器高级架构师1. 传输层的主要功能是什么?2. 传输层如何区分不同应用程序的数据流?3. 传输层有哪些协议?4. 什么是UDP协议?5. 为什么有了UDP,还需要TCP?6. 什么是TCP协议?7. 怎么.

2021-05-06 16:55:59 2

原创 c/c++后台开发必知堆与栈的区别

作者:linux链接:https://zhuanlan.zhihu.com/p/268370042来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。堆(Heap)与栈(Stack)是开发人员必须面对的两个概念,在理解这两个概念时,需要放到具体的场景下,因为不同场景下,堆与栈代表不同的含义。一般情况下,有两层含义:(1)程序内存布局场景下,堆与栈表示两种内存管理方式;(2)数据结构场景下,堆与栈表示两种常用的数据结构。1.程序内存分区中的堆与栈1.1 栈简.

2021-03-27 15:09:19 30

原创 状态模式:一个Epoll边缘触发的代理服务器设计

linux服务器开发相关视频解析:后台开发第204讲|【零声学院】大厂面试必备:设计模式篇|1. 开闭原则、单一职责、里氏替换、接口隔离以及组合优于继承 2. 模板方法 3. 责任链和装饰器模式后台开发第135讲|epoll的具体实现与epoll线程安全,互斥锁,自旋锁,CAS,原子操作|1. 互斥锁的原理 2. 自旋锁的使用场景 3. 三种操作的使用c/c++ linux服务器开发免费学习地址:c/c++ linux后台服务器高级架构师设计模式是一门热门的知识,...

2021-03-27 14:49:02 23

原创 操作系统内存管理,你能回答这8个问题吗?

linux服务器开发相关视频解析:后台开发第170讲|【零声学院官方视频】90分钟了解 Linux内存架构 听了就赚到了|1. numa的优势 2. slab/slob/slub的分配机制后台开发第178讲|【零声学院官方视频】epoll原理剖析以及reactor模型应用|1. epoll原理剖析 2. 单reactor原理以及应用c/c++ linux服务器开发免费学习地址:c/c++ linux后台服务器高级架构师1. 什么是物理内存2. 使用物理内存有什么缺点...

2021-03-25 14:12:15 32

原创 Linux性能优化专项学习(一)

01 | 学习Linux性能优化性能指标是什么?当看到性能指标时,你会首先想到什么呢?我相信“高并发”和“响应快”一定是最先出现在你脑海里的两个词,而它们也正对应着性能优化的两个核心指标——“吞吐”和“延时”。这两个指标是从应用负载的视角来考察性能,直接影响了产品终端的用户体验。跟它们对应的,是从系统资源的视角出发的指标,比如资源使用率、饱和度等。我们知道,随着应用负载的增加,系统资源的使用也会升高,甚至达到极限。而性能问题的本质,就是系统资源已经达到瓶颈,但请求的处理却还不..

2021-01-30 15:49:16 83

原创 数据库的存储结构

主流的key-value存储系统,都是在系统内部维护⼀个hash表,因为对hash表的操作时间复杂度为O(1)。如果数据增加以后,导致冲突严重,时间复杂度增加,则可以对hash表进⾏rehash,以此来保证操作的常 量时间复杂度。那么,对于这样⼀个基于hash表的key-value存储系统,是如何提供这么丰富的数据结构的呢?这些数据 结构在内存中如何存储呢?这篇⽂章将⽤⼤量的图⽚演示redis的内存布局和数据存储。1、Hash算法 先来看⼀个思考题,⽐如我们有⼀个k-v系统,如果我们把k-...

2021-01-21 15:25:13 53

原创 都2021年了,c/c++ 开发竟然还能继续吃香??

年后就迎来了金三银四,你准备好2021年的跳槽涨薪计划了吗?今天我就来给大家分享,c/c++作为老牌开发常青树,还能与java/python/go较较劲的岗位和技术在哪里!同时,给大家整理了2021年系统全面技术学习资料。文末领取,免费送给你!首先,先来看看c/c++开发能从事哪些开发岗位?01实验室开发不止计算机专业,很多工科专业,比如电信、电气、通信等专业,基本上正常的学习中都会使用到C++。都说C++兼具面向过程以及面向对象的特性,既...

2021-01-20 17:35:09 166

原创 从经典网络IO模型到新异步IO框架io_uring

网络IO两阶段网络IO涉及用户空间和内核空间,一般会有以下两阶段: 一阶段:等待数据准备就绪,即数据被copy到内核缓冲区(wait for data) 二阶段:数据从内核缓冲区copy到用户缓冲区(copy data from kernel to user) 根据以上两阶段不同,出现了多种网络IO模型,接下来一一进行分析。注意所展示的图中(wait for data)和(copy data from kernel to user)字段分别表示一二阶段。1. 阻塞I...

2021-01-19 21:42:36 80

原创 高并发:线程、线程锁与线程池(精华),手写代码实现线程池

前文:单线程——多线程的开启——线程锁——线程同步工具——手写连接池——连接池工具类。一、线程1.线程的概念2.线程与进程的关系3.定义:区别:如上!!!4.wait()和sleep()5.线程的状态及其他API二、线程锁线程并发同步时,引入了锁机制。1. 普通锁机制:synchronized 修饰代码块与volatile 修饰成员变量2.Lock!!共同点:都是从外面创建锁类、再把锁传到线...

2020-10-26 20:18:43 122

原创 总结如何从Linux开发工程师到Linux后台开发工程师再到Linux高级互联网架构师

前言:小编也是从事c方面10多年的工作经验、今天跟大家分享一下我总结出来的一系列 C/C Linux后台服务器开发的学习路线。从Linux开发工程师-Linux后台开发工程师-Linux高级互联网架构师。想必大家都知道从事后台开发首先就是要选择一种语言,小编今天跟大家分享是用C/C++ 做的后台开发。所以想从事这方面的朋友得有C/C++的基础。首先跟大家说的是从学习步骤:(Linux入门到精通篇)一、Linux开发环境1.了解Linux环境搭建,了解LinuxC编程2.了解.

2020-10-26 20:08:37 385 2

原创 C/C++Linux服务器开发高级架构师、流媒体音视频学习视频续集

后台开发深入聊聊websocket协议,restful, tcp分包与粘包链接:https://pan.baidu.com/s/1ME0kF1KNKAJMUmJNpXyDRg提取码:0tbatcp网络服务模型,redis,nginx,memcached一起搞定链接:https://pan.baidu.com/s/1Mon9tb6h6xT8b-fzCAKc0Q提取码:fakb面试中,手撕线程池不再紧张,一节课都搞定链接:https://pan.baidu.com/s/13Qis...

2020-09-11 15:22:20 370

原创 Linux C/C++服务器后台开发面试题总结

一、编程语言1.根据熟悉的语言,谈谈两种语言的区别?主要浅谈下C/C++和PHP语言的区别:1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互联网开发公司的主流web后台开发语言,主要框架为mvc模型,如smarty,yaf,升级的PHP7速度较快,对服务器的压力要小很多,在新浪微博已经有应用,对比很明显。2)C/C++开发语言,C语言更偏向硬件底层开发,C++语言是目前为止我认为语法内容最多的一种语言。C/C++在执行速度上要快很多,毕竟其他

2020-09-11 14:57:00 148

原创 微信支付为什么需要软件架构

大纲 背景 线上效果指标 什么是软件架构 为什么需要软件架构 从零到一构建支付跨平台软件架构 1.抽象业务流程 2.加入路由机制 3.管理网络请求 4.规范数据传递 总结 背景作为一个重要业务,微信支付在客户端上面临着各种问题。其中最核心问题就是分平台实现导致的问题: iOS 和安卓实现不一致 容易出 Bug 通过沟通保证不了质量 扩展性差,无法快速响应业务需求 需.

2020-09-09 14:00:00 117

原创 流媒体-Ubuntu 下 Janus Server 搭建笔记

1 简介Janus 是一个开源的,通过 C 语言实现了对 WebRTC 支持的 Gateway;Janus 自身实现得很简单,提供插件机制来支持不同的业务逻辑,配合官方自带插件就可以用来实现高效的 Media Server 服务。本文主要介绍如何在 Ubuntu 16.04 下搭建起 janus 服务器,实现 janus 官方 Demo 浏览器与 Android APP Demo(janus-gateway-android)之间的音视频通话。浏览器打开音视频采集的话需要 HTTPS 加密访问!

2020-08-27 17:32:06 374

原创 Linux服务器开发架构师进阶之路:MySQL与redis缓存的同步方案

本文介绍MySQL与Redis缓存的同步的两种方案方案1:通过MySQL自动同步刷新Redis,MySQL触发器+UDF函数实现方案 2:解析MySQL的binlog实现,将数据库中的数据同步到Redis一、方案1(UDF)场景分析:当我们对MySQL数据库进行数据操作时,同时将相应的数据同步到Redis中,同步到Redis之后,查询的操作就从Redis中查找 过程大致如下: 在MySQL中对要操作的数据设置触发器Trigger,监听操作 客户端(NodeServer)向MySQL中.

2020-08-13 15:41:16 77

原创 史上最最通俗易懂的TCP/IP协议栈,不看会错过涨薪的机会

从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。一图看完本文一、 计算机网络体系结构分层计算机网络体系结构分层计算机网络体系结构分层不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI...

2020-08-11 14:33:25 288

原创 Linux后台开发具备能力集锦

Linux后台开发应该具备技能一、linux和os:1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。tcpdump 根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数

2020-07-30 14:15:18 185

原创 一篇文章让你更好的了解Linux高并发服务器——select服务器

高并发服务器select服务器属于多路I/O转接服务器的其中一种服务器模型select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数解决1024以下客户端时使用select是很合适的,但如果链接客户端过多,select采用的是轮询模型,会大大降低服务器响应效率,不应在select上投入更多精力多路I/O转接服务器模型大致如下图一样,select就像是服务器的小助手一样,帮忙服务器处理客户端的请求,这

2020-07-30 13:59:27 106

原创 skynet服务的设计与缺陷

skynet服务的设计统观整篇文章,不难发现:每个skynet服务都是一个lua state,也就是一个lua虚拟机实例。而且,每个服务都是隔离的,各自使用自己独立的内存空间,服务之间通过发消息来完成数据交换。架构图如下:lua state本身没有多线程支持的,为了实现cpu的摊分,skynet实际上在一个线程运行多个lua state实例。而同一时间下,调度线程只运行一个服务实例。为了提高系统的并发性,skynet会启动一定数量的调度线程。同时,为了提高服务的并发性,就利用lua.

2020-07-22 17:31:55 118

原创 网络编程——通信协议基础篇

目录一、交换机与集线器二、arp和icmp三、路由器简介四、ip地址与mac地址的不同五、访问网站过程、http服务器、dns服务器配置六、tcp的三次握手、四次挥手6.1 tcp的三次握手6.2 tcp的四次挥手6.3 tcp长连接和短连接七、tcp的十种状态八、2MSL问题九、listen的队列长度十、常见的网络攻击10.1 tcp半链接攻击10.2 dns攻击10.2.1 dns服务器被劫持10.2.2 dns欺骗10.2.3 查

2020-07-14 14:30:02 148

原创 网络编程——服务器篇

目录一、客户端实现二、单进程服务器2.1 单进程实现2.2 单进程非阻塞实现2.3 TCP服务器(select版)2.4 epoll版服务器实现三、多进程服务器和多线程服务器四、协程4.1 协程的生成器实现4.2 协程的greenlet实现4.3 协程的gevent实现4.3.1 gevent的使用4.3.2 gevent的切换执行4.3.3 gevent的服务器实现一、客户端实现客户端比较简单,并且适用于与不同服务器通信,代码如下:#c

2020-07-09 15:01:11 165

原创 通俗易懂:快速理解P2P技术中的NAT穿透原理

导语最近介入测试P2P的相关逻辑,因此对NAT穿透原理做了一定程度的了解(当然也没有很深入)。。写本文的目的就是,用自己的语言描述了这个过程,同时也在描述过程中加入了一些自己的理解,形成一篇文章作为要点的记录。对于这一块的知识,自己也有很多盲点,还请各路大神多多指教。一、背景知识介绍1.什么是NAT?NAT(Network Address Translation,网络地址转换),也叫做网络掩蔽或者IP掩蔽。NAT是一种网络地址翻译技术,主要是将内部的私有IP地址(private IP)转换成

2020-06-29 16:51:40 126

原创 音视频编解码学习之编解码框架

1. 压缩码流语法:码流中各个元素的位置关系01001001…图像编码类型(01),宏块类型(00),编码系数1001等 语义:每个语法元素所表达的意义。例如:图像编码类型2. 编码层次序列(Sequence) 图像组(Group of Pictures,GOP) 图像(Picture) 条带(Slice) 宏块(Macroblock,MB) 块(Block)3. 码流结构4. PB帧编码5. 序列编码对象(1)IBBP序列序列...

2020-06-29 16:22:48 189

原创 这样的TCP/IP协议,你看懂了吗?

精通 TCP/IP,熟练使用 Socket 进行网络编程。看到这句话,有没有感到很熟悉呀?相信很多人在投递简历的时候都看到过这条要求,很多人会觉得我们在实际开发中一般用不到这些知识,所以对这些东西不屑一顾.但是笔者认为想要做出更好的 APP,那么对这些基础知识必须要有一定的了解,这样你才能考虑得更加全面和完善,下面就让我们一起来了解一下,什么是 TCP/IP.1.什么是 TCP/IP?TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合.传统上来说 TCP/IP 被认为是一个双层协

2020-06-24 14:03:02 217

原创 什么是tcp/ip协议?UDP与TCP如何选择?

大家好,今天给大家分享一下什么是tcp/ip协议?TCP的三次握手指的是什么,为什么一定要三次握手,而不是四次或者是两次?1.背景介绍先介绍下背景TCP/IP是什么?TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议等等。同时是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。 TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结.

2020-06-23 15:05:32 381

原创 知道Nginx三大功能是什么吗?

1、Nginx是什么?Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。2、三大功能1)反向代理正向代理:特定情况下,代理用户访问服务器,需要用户手动的设置代理服务器的ip和端口号。反向代理:是用来代理服务器,代理用户要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(服务集群模式),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。Nginx在反向代理上,提供灵活的功能,可以根据不同的正则采用不同...

2020-06-20 16:16:11 165

原创 实现linux下高并发服务器

在做网络服务的时候tcp并发服务端程序的编写必不可少。tcp并发通常有几种固定的设计模式套路,他们各有优点,也各有应用之处。下面就简单的讨论下这几种模式的差异:单进程,单线程在accept之后,就开始在这一个连接连接上的数据收接收,收到之后处理,发送,不再接收新的连接,除非这个连接的处理结束。优点: 简单。缺点: 因为只给一个客户端服务,所以不存在并发的可能。应用: 用在只给一个客户端服务的时候。多进程accept返回成功时候,就给这一个连接fork一个进程,专门处理这个连接上的

2020-06-19 14:17:56 194

原创 关于 nginx优化——包括https、keepalive等

一、nginx之tcp_nopush、tcp_nodelay、sendfile1、TCP_NODELAY你怎么可以强制 socket 在它的缓冲区里发送数据?一个解决方案是 TCP 堆栈的 TCP_NODELAY选项。这样就可以使缓冲区中的数据立即发送出去。Nginx的 TCP_NODELAY 选项使得在打开一个新的 socket 时增加了TCP_NODELAY选项。但这时会造成一种情况:终端应用程序每产生一次操作就会发送一个包,而典型情况下一个包会拥有一个字节的数据以及40个...

2020-06-19 14:06:14 199

原创 音视频编解码类开源项目的18个实时

实时音视频的开发学习有很多可以参考的开源项目。一个实时音视频应用共包括几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等很多环节。每一个细分环节,还有更细分的技术模块。比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有VP8、VP9、H.264、H.265等。我们今天汇总了一些能帮助到正在学习或进行音视频开发的实时音视频开发者们的开源项目与几个也在为开源社区贡献力量的商业服务。这些项目分为几类:音视频编解码类、视频前后处理、服务端类等。音视频编解码类开源

2020-05-27 15:03:13 935

原创 支撑亿级io的底层基石 epoll实战揭秘

文章目录一、epoll原理详解二、epoll的两种触发模式三、epoll反应堆模型四、支撑亿级io的底层基石 epoll实战揭秘讲解:网络io,epoll的视频讲解  设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收TCP包),也就是说在每一时刻进程只需要处理这100万连接中的一小部分连接。那么,如何才能高效的处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系

2020-05-27 14:00:06 205

原创 解析5G时代音视频 WebRTC音频引擎实现分析

前言5G时代的到来 音视频的崛起 多少又真正了解音视频的开发呢?想学习转行?却还在为技术担忧吗?音视频学习大纲小编分享一篇webrtc视频解析音视频开发第十八讲|CC++程序员进入互联网公司的捷径-WebRTC开发|流媒体|音视频开发|更多音视频开发、c/c++ Linux服务器高阶知识、电子书籍、视频等等可以点击链接加入群聊【linux后台服务架构交流】WebRTC的音频引擎作为两大基础多媒体引擎之一,实现了音频数据的采集、前处理、编码、发送、接收、解码、混音、后处...

2020-05-22 15:31:30 299

原创 MySQL的块数据操作

主要内容:分享一篇mysql数据库操作视频解析:MySQL的块数据操作本次分享将介绍目前数据迁移、数据同步、数据消费,多IDC架构中数据复制技术所面临问题及现有的产品和方案,并分享新开源的能在异构数据存储之间提供高性能和强大复制功能的DTLE相关技术内容。更多c/c++ Linux服务器高阶知识、电子书籍、视频等等可以点击链接加入群聊【linux后台服务架构交流】知识点有C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,Mong

2020-05-16 22:06:26 238

原创 一起来解读分布式日志收集系统:Facebook Scribe

1.分布式日志收集系统:背景介绍许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:(1) 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦;(2) 支持近实时的在线分析系统和类似于Hadoop之类的离线分析系统;(3) 具有高可扩展性。即:当数据量增加时,可以通过增加节点进行水平扩展。需要c/c++ Linux服务器高阶知识视频资料的朋友可以点击链接加入群聊【linux后台服务架构交流

2020-05-16 21:55:39 161

原创 Linux下Socket编程——epoll的使用

简介epoll与select epoll_create epoll_ctl epoll_wait ET、LT模式#include <sys/epoll.h>需要c/c++ Linux服务器高阶知识视频资料的朋友可以点击链接加入群聊【linux后台服务架构交流】知识点有C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等

2020-05-14 19:40:32 253

原创 Linux 线程的概念和使用

本文主要介绍Linux线程的概念以及线程的模型,并介绍基于POSIX线程的接口。什么是线程?在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。 一切进程至少都有一个执行线程。进程与线程进程是资源分配与竞争的基本单位 线程是程序执行的最小单位 线程共享进程数据,但也有自己的一部分数据 线程ID 一组寄存器:IP,PSW,堆栈指针 栈 errno 信号状态 优先级fork和创建新线程的区别当一个进程执行一个..

2020-05-12 16:45:31 282

原创 介绍及线程池,C++实现内存池、进程池、线程池

内存池平常我们使用new、malloc在堆区申请一块内存,但由于每次申请的内存大小不一样就会产生很多内存碎片,造成不好管理与浪费的情况。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是尽量避免了内存碎片,使得内存分配效率得到提升。进程池&&线程池这两个问题有一定的相似度,在面向对象程序编程中,对象的创建与析构都是一个较为...

2020-05-12 16:38:45 185

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除