写点什么

linux开发

0 人感兴趣 · 50 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/8c/8c147b6e37413e721636569b3dee57f3.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

「AVL 平衡树专项」带你领略常用的 AVL 树与红黑树的奥秘(规则篇)

AVL树叫做平衡二叉树,它的前提是二叉排序树(BST或叫做二叉查找树)。由于在生成BST树的过程中可能会出现线型树结构,比如插入的顺序是:1, 2, 3, 4, 5, 6, 7..., n。

https://static001.geekbang.org/infoq/ad/ad7f6694aaa12b6df0fb6e805c76f6ad.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

一文揭晓,我是如何在 Linux 中查找自如

用过 Linux 的小伙伴都知道,在Linux系统中包含着大量的文件,绝大部分情况下,我们都是通过 CLI 的方式与Linux进行交互,这就会面临一个问题,当我们需要查找一个文件的时候却迟迟无从下手,不知道该如何找起。我们应该怎么查找文件呢?庞大的文件量如何查找

https://static001.geekbang.org/infoq/82/8260ffa35e52b9cc755b8ff1c35bc15d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

从状态机的角度 async 和 await 的实现原理

一. 深度剖析 准备: 先给VS安装一个插件ILSpy,这样更容易反编译代码进行查看,另外要注意反编译async和await的时候,要把C#代码版本改为4.0哦。 1.什么是状态机 (1).含义:通常我们所说的状态机(State Machine)指的是有限状态自动机的简称,是现实事物运

https://static001.geekbang.org/infoq/7f/7fed8f1e6488ca0043391d1585251690.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

说透 IO 多路复用模型

用户头像
C++后台开发
2022-12-29

在说IO多路复用模型之前,我们先来大致了解下Linux文件系统。在Linux系统中,不论是你的鼠标,键盘,还是打印机,甚至于连接到本机的socket client端,都是以文件描述符的形式存在于系统中,诸如此类,等等等等,所以可以这么说,一切皆文件。来看一下系统定

https://static001.geekbang.org/infoq/5a/5adaec0abbd9eb1418d0fcf9b93fbabd.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

消息中间件执行原理

用户头像
C++后台开发
2022-12-21

消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。消息中间件也可以称消息队列(Message Queue / MQ),用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布

https://static001.geekbang.org/infoq/67/671db9aff002dbec8444302b212bd081.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

数据存储,消息队列的高可用保障

用户头像
C++后台开发
2022-12-20

在之前的章节中,我们介绍了消息的发送 和 消息通信 的原理。但是这边有一个比较核心的关键点,那就是如果已经把消息传递给Broker。在Broker在被消费之前,如何保证消息的稳定性,避免消息丢失和数据。这时候就需要数据持久化数据来进行保障了。根据之前我们

https://static001.geekbang.org/infoq/d8/d8ec53fef82ae40a2a3bb4a630cca3f0.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

性能优化 - 内存泄漏、内存溢出、cpu 占用高、死锁、栈溢出、FullGC 频繁检测手段 - 总结与分享

用户头像
C++后台开发
2022-12-17

含义:内层泄露是程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费。(换言之,GC回收不了这些不再被使用的对象,这些对象的生命周期太长) 危害:当应用程序长时间连续运行时,会导致严重的性能下降;OOM;偶尔会耗尽连接对象

https://static001.geekbang.org/infoq/e9/e9190ab333976a29acc133310cea6658.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

介绍四大并发集合类并结合单例模式下的队列来说明线程安全和非安全的场景及补充性能调优问题。

用户头像
C++后台开发
2022-12-16

一. 四大并发集合类 背景:我们目前使用的所有集合都是线程不安全的 。 A. ConcurrentBag:就是利用线程槽来分摊Bag中的所有数据,链表的头插法,0代表移除最后一个插入的值. (等价于同步中的List) B. ConcurrentStack:线程安全的Stack是使用Interlocked

https://static001.geekbang.org/infoq/0b/0bcb1825f08a005928db019bf675bde2.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

时间复杂度和空间复杂度

用户头像
C++后台开发
2022-12-12

算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,但是耗费的时间和资源是不同的。就比如要拧一个螺母,使用扳手还是钳子是有区别的,虽然使用钳子也能拧螺母,但是没有扳手好用。“条条大路通罗马”,解决问题的算法有多种,这就需

https://static001.geekbang.org/infoq/5c/5cf4eaa5dd38a19dffebe501e09d92d2.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

线性表→顺序表→链表 逐个击破

用户头像
C++后台开发
2022-12-10

  线性表,全名为线性存储结构。使用线性表存储数据的方式可以这样理解,即 “ 把所有(一对一逻辑关系的)数据用一根线儿串起来,再存储到物理空间中 ”。这根线有两种串联形式,如下图,即顺序存储(集中存放)和链式存储(分散存放)。

https://static001.geekbang.org/infoq/8b/8ba0bd1ff9c3dd53cac7246b57b87f8b.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 之基于 Centos 系统安装 Redis、MySQL、Nginx

用户头像
C++后台开发
2022-12-05

一. Redis的安装 1. 准备 (1). 宿主机:centos 8.0 (2). Redis源码:【压缩包: redis-5.0.0.tar.gz】 需要自行编译。 (PS:这个压缩包可以直接Centos系统中在线下载 或者去Redis官网先下载,然后copy到Centos系统中) 下载地址:

https://static001.geekbang.org/infoq/80/8047ade74602a4c3fd39e1bc3cda6c7a.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深究用户模式锁的使用场景 (异变结构、互锁、旋转锁)

用户头像
C++后台开发
2022-11-30

  本章节,将结合多线程来介绍锁机制, 那么问题来了,什么是锁呢? 为什么需要锁? 为什么要结合多线程来介绍锁呢?锁的使用场景又是什么呢? DotNet中又有哪些锁呢?

https://static001.geekbang.org/infoq/d0/d0ee77541a855d000ac8db1c5a65917d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

从多个角度分析顺序表和链表区别和特点

用户头像
C++后台开发
2022-11-29

  顺序表和链表由于存储结构上的差异,导致他们有不同的特点,从而适用于不同的场景。虽然他们都属于线性表,但他们的存储结构有着本质的不同:

https://static001.geekbang.org/infoq/10/10241700dbfa29c65a2f7c69312a328a.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

链表剖析及自己手撸"单链表"实现基本操作 (初始化、增、删、改等)

用户头像
C++后台开发
2022-11-28

链式存储结构,又叫链表,逻辑上相邻,但是物理位置可以不相邻,因此对链表进行插入和删除时不需要移动数据元素,但是存取数据的效率却很低,分为三类:

https://static001.geekbang.org/infoq/88/88f669e04e2e9300b276635f0475204e.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

linux 常用服务配置、网络配置 和 基于 FTP 的上传和下载的几种方式

用户头像
C++后台开发
2022-11-26

一. 网络服务配置 1. 主机名配置 hostname: 查看主机名 hostname xxx: 修改主机名(重启后无效) PS: 如果想要永久生效,可以修改/etc/sysconfig/network文件 2. 静态IP的配置

https://static001.geekbang.org/infoq/9a/9a90985a258a3de6f8b257e798a86a50.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

栈简介、手撸顺序栈、手撸链栈和栈的应用

用户头像
C++后台开发
2022-11-22

栈是一种只能从表的一端存取数据且遵循 "先进后出"("后进先出") 原则的线性存储结构。栈也是用来存储逻辑关系为 "一对一" 数据的线性存储结构。

https://static001.geekbang.org/infoq/f7/f7261de3be7fe2ad9e098f31778c9de1.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Linux 之用户管理、权限管理、程序安装卸载

用户头像
C++后台开发
2022-11-18

一. 用户管理 1. 查看账户 (1). 查看当前账号:whoami ​(2). 查看系统当前登录的账号:who ​补充常用选项:

https://static001.geekbang.org/infoq/b9/b9db9992390687e8d7f055cc44ce2f43.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深究并行编程 Parallel 类中的三大方法 (For、ForEach、Invoke)和几大编程模型 (SPM、APM、EAP、TAP)

用户头像
C++后台开发
2022-11-17

一. 并行编程 1. 区分串行编程和串行编程 ①. 串行编程:所谓的串行编程就是单线程的作用下,按顺序执行。(典型代表for循环 下面例子从1-100按顺序执行) ②. 并行编程:充分利用多核cpu的优势,同时开启多个线程并行执行。(典型代表Para

https://static001.geekbang.org/infoq/0a/0aba817937d63ce95704336c06ce855e.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

探究并发和并行、同步和异步、进程和线程、阻塞和非阻塞、响应和吞吐等

用户头像
C++后台开发
2022-11-16

操作系统扫盲:   1. 对于单核cpu而言(不管单核单线程也好,单核多线程也罢),同一时间只能干一件事!!为了看起像可以“同时干多件事”,windows操作系统把cpu的时间划分为长短基本相同的时间区间,即“时间片”,通过操作系统的管理,

https://static001.geekbang.org/infoq/b3/b3c280352d5e046ac366f7bb23077edd.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

探究多线程和异步

用户头像
C++后台开发
2022-11-10

在刚接触开发的头几年里,说实话,根本不考虑多线程的这个问题,貌似那时候脑子里也有没有多线程的这个概念,所有的业务都是一个线程来处理,不考虑性能问题,当然也没有考虑多线程操作一条记录存在的并发问题,后面随着处理的系统业务越来越复杂,多线程再

https://static001.geekbang.org/infoq/84/84deff5c9df9c8afba966392aeb819f4.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

内存数据库如何发挥内存优势?

用户头像
C++后台开发
2022-11-09

与以磁盘存储为主的普通数据库相比,内存数据库的数据访问速度可以高出几个数量级,能大幅提高运算性能,更适合高并发、低延时的业务场景。

https://static001.geekbang.org/infoq/e7/e74a6cbec865c2b550f15eabe72e6b24.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

并发编程中的锁、条件变量和信号量

用户头像
C++后台开发
2022-11-04

在并发编程中,经常会涉及到锁、条件变量和信号量。本文从并发开始,探究为什么需要它们,它们的概念,实现原理以及应用。

https://static001.geekbang.org/infoq/68/680f1300474f0fa2136c241a55d28b7b.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

详解 linux 多线程——互斥锁、条件变量、读写锁、自旋锁、信号量

用户头像
C++后台开发
2022-11-03

  在多任务操作系统中,同时运行的多个任务可能都需要使用同一种资源。这个过程有点类似于,公司部门里,我在使用着打印机打印东西的同时(还没有打印完),别人刚好也在此刻使用打印机打印东西,如果不做任何处理的话,打印出来的东西肯定是错乱的。

https://static001.geekbang.org/infoq/2c/2cab33f09b4007d81b8053caaba8dffe.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【C++ 多线程那些事儿】多线程的执行顺序如你预期吗?

用户头像
C++后台开发
2022-11-02

一个简单的例子 先来看一个多线程的例子: 如图所示,我们将变量x和y初始化为0,然后在线程1中执行: x = 1, m = y; 同时在线程2中执行: y = 1, n = x; 当两个线程都执行结束以后,m和n的值分别是多少呢?

https://static001.geekbang.org/infoq/33/338f66fd5fefae0b987b9a94a80cf3d7.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

学 C++ 的以后都能从事哪些岗位?

用户头像
C++后台开发
2022-10-31

​相信很多人对编程的接触都来自于大学时的C++语言编程,但这门课只告诉你什么是编程语言,并没有告诉你如何熟练地掌握编程。所以,很多人在毕业前夕发现,虽然学了C++,但似乎不知道自己能做什么,能找到什么样的工作,能去什么样的公司,这是必然的。所以这

https://static001.geekbang.org/infoq/de/de7d2274b8c6e54c6c15450cede01b7f.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

多线程、多进程同时操作 MMAP,会怎么样?

用户头像
C++后台开发
2022-10-28

今天我们来聊聊同步,假设一种场景,就是在客户端Activity中,开启多个线程同时写入mmap内存中,看看会怎样

https://static001.geekbang.org/infoq/d0/d0201540a046d7fa974eeb45c60c9e55.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

可靠消息最终一致性分布式事务

用户头像
C++后台开发
2022-10-22

一、前言 可靠消息最终一致性方案主要适用于消息数据能够独立存储: 能够降低系统之间耦合度 业务对数据一致性的时间敏感度高 此方案需要实现的服务模式: 可查询操作:提供查询自身事务状态的接口。

https://static001.geekbang.org/infoq/68/68678e5ee71ddc256b62e81e030938dc.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

探究线程与进程的区别这一问题

用户头像
C++后台开发
2022-10-20

进程和线程基础(理论概念) 1. 定义 看了下面的定义,可能会有点晕,但我还是要把他写下来(为了严谨)。 进程是资源(CPU、内存等)分配的基本单位,具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立

https://static001.geekbang.org/infoq/ae/ae217f323f238b907ba5f18bc09c7ae9.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深入 RocketMQ- 消息原理篇

用户头像
C++后台开发
2022-10-19

RocketMQ 原理分析-消息原理 本篇原理分析主要讲解消息原理方面 RocketMQ 如何保证消息不丢失/保证可靠性 消息在 RocketMQ 流转大概可以分为三个阶段:发送阶段、存储阶段、消费阶段,那么可靠性就要从这三个阶段考虑。

https://static001.geekbang.org/infoq/12/12e820699b3fb0edfa8dd7535958f1a5.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【数据结构之红黑树】深入原理与实现

用户头像
C++后台开发
2022-10-14

从这篇文章开始我们来介绍红黑树这种数据结构,由于红黑树有二分搜索树和AVL树的性质,对于红黑树的操作同样依赖于这些性质。所以,如果理解了二分搜索树和AVL树之后再来理解红黑树其实相对来讲还是比较简单的。

linux开发_linux开发技术文章_InfoQ写作社区