文章列表

6.3k 6 分钟

本章完成 java 四种 BlockingQueue 的 C++ 实现 # 原有 BlockingQueue ArrayBlockingQueue :基于数组的有界阻塞队列。队列按 FIFO 原则对元素进行排序,队列头部是在队列中存活时间最长的元素,队尾则是存在时间最短的元素。新元素插入到队列的尾部,队列获取操作则是从队列头部开始获得元素。 这是一个典型的...
5.2k 5 分钟

本章搭建 java ThreadPoolExecutor 线程池的 C++ 简易实现框架 # 简介 近期想加固多线程场景编程能力,想使用 C++ 实现一套类似 Java ThreadPoolExecutor 的线程池。本章介绍各组件的基础功能框架。 # ThreadPoolExecutor 实现 # Java 线程池的参数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable>...
8.3k 8 分钟

# C++:深入理解 std::enable_shared_from_this 与 shared_from_this # 为什么以及何时使用 shared_from_this # shared_from_this 的作用 在面向对象编程中,常常需要在对象的成员函数中获取指向自身的智能指针,以确保对象在某些操作(特别是异步操作)期间的生命周期。 std::enable_shared_from_this 和 shared_from_this 正是为了解决这一需求而设计。 # 使用场景 异步操作与回调函数 在涉及异步操作(如异步...
2.5k 2 分钟

# 简介 对于 OpenHarmony 的 IPC 框架,每个部件都需要用到。本文将介绍 OpenHarmony 的进程间通信原理,并提供相应的代码示例。 IPC 和 RPC 通常采用客户端 - 服务器(Client-Server)模型,在使用时,请求服务的(Client)一端进程可获取提供服务(Server)一端所在进程的代理(Proxy),并通过此代理读写数据来实现进程间的数据通信。 # 开发步骤 # iService 定义 IPC 接口类,表示 IPC 提供的功能。 继承 IRemoteBroker ,且通过 DECLARE_INTERFACE_DESCRIPTOR...
3.3k 3 分钟

最近在写代码时发现了一个很奇怪的现象,单例模式生成的单例实例在同一进程中出现了多次。在此记录一下。 下面是我复现的代码,也可以直接在我的仓库进行下载 gitee git clone https://gitee.com/little-sweet-cookie/singleton_so_test.git代码包括五个代码文件和一个 makefile 文件 handler.h main.cc service_a.cc service_b.cc singleton.h makefile 需要的单例实例,使用单例模板实现单例模式 // handler.h#ifndef HANDLER_H#define...
369 1 分钟

本篇文章指导搭建 Rust 开发环境。通过本文学习,你可以使用集成 IDE 进行 Rust 编程。本文包括: 安装 rustup 工具链 安装 RustRover 集成 IDE # 安装 Rust # 安装 rustup 管理工具链 在进行 Rust 开发前你需要安装 Rust 开发必备的工具链。 下载地址:rustup-init 下载后,执行文件 rustup-init.exe ,在弹出的窗口输入 1 并按回车。等待脚本执行完即可。 # 安装 RustRover 工欲善其事必先利其器,你需要使用专业的 IDE 进行代码开发,否则使用 Rust 编程是非常痛苦的事,Rust...
903 1 分钟

原题链接:60. 排列序列 难度分类:Hard # Problem 给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时,所有排列如下: "123" "132" "213" "231" "312" "321" 给定 n 和 k,返回第 k 个排列。 Examples 示例 1: 输入:n = 3, k =...
3.1k 3 分钟

# MQ # 常见 MQ 模型 队列模型 最简单的消息模型,队列模式,用阻塞队列实现的生产者消费者模式,也可以看作一个队列模型的消息队列。 发布 - 订阅模型 队列模式也可以有多个生产者消费者,但是同一个消息只能被一个消费者消费,为了解决这个为题,演化出了另一种消息模型 ** 发布 - 订阅模型(Publish-Subscribe Pattern)** 也被称为主题模型。 在发布 - 订阅模型中,消息的发送方称为发布者(Publisher),消息的接收方称为订阅者(Subscriber),服务端存放消息的容器称为主题(Topic)。发布者将消息发送到主题中,订阅者在接收消息之前需要先...
19k 17 分钟

# Framework Spring 总共大约有 20 个模块, 由 1300 多个不同的文件构成。 而这些组件被分别整合在核心容器(Core Container) 、 AOP(Aspect Oriented Programming)和设备支持(Instrmentation) 、数据访问与集成(Data Access/Integeration) 、 Web、 消息(Messaging) 、 Test 等 6 个模块中。 以下是 Spring 5 的模块结构图: spring core:提供了框架的基本组成部分,包括控制反转(Inversion of...
13k 12 分钟

# Redis Redis,英文全称是 Remote Dictionary Server(远程字典服务),是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。 与 MySQL 数据库不同的是, Redis 的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过 10 万次读写操作。因此 redis 被广泛应用于缓存,另外, Redis 也经常用来做分布式锁。除此之外, Redis 支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。 # Redis 为何这么快 Redis...