202410-23 MQTT 协议入门 MQTT(Message Queuing Telemetry Transport)是一种轻量级、基于发布-订阅模式的消息传输协议,适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它在物联网应用中广受欢迎,能够实现传感器、执行器和其它设备之间的高效通信。 1 MQTT 协议的主要特性 轻.... Read More >
202410-23 EMQX 快速上手 EMQX 是一款「无限连接,任意集成,随处运行」的大规模分布式物联网接入平台,同时作为一个高性能、可扩展的 MQTT 消息服务器,它可以为物联网(IoT)应用提供可靠的实时消息传输和设备连接解决方案。 1 EMQX 的安装 以 CentOS7 为例,介绍 EMQX 的安装方法。 # 安装所需.... Read More >
202410-17 InfluxDB 学习 1 安装 使用的端口: 8086: C/S 架构下的 HTTP 通信 8088: 备份、恢复数据的 RPC 服务使用 yum install influxdb service influxdb start # 也可以 yum install influxdb systemctl star.... Read More >
202410-16 使用 screen 工具将命令挂在后台执行 有时候使用 SSH 工具连接服务器执行命令,SHH 连接由于各种原因会中途断开,这时可以使用 screen 将命令挂在后台执行,本文将对 screen 的安装及使用进行介绍。 通常情况下,screen创建的虚拟终端,有两个工作模式: Attached:表示当前screen正在作为主终端使用,为活跃状态。 Detached:表示当前screen正在后台使用,为离线状态。 1 screen .... Read More >
202410-12 Python 进度条 tqdm 的用法 1 tqdm 的安装 pip install tqdm 2 tqdm 的使用 a) tqdm 在 for 循环中的使用 import time from tqdm import tqdm for i in tqdm(range(100)): time.sleep(0.001) b) tqdm 在 while 循环中的使用 from tqdm import tqdm .... Read More >
202305-29 【小实验】启动一个 JVM 至少创建几个线程? 启动一个 JVM 进程至少创建多少个线程呢?让我们来做一个实验吧!测试使用的 JDK 版本为 RedHat Open JDK 1.8.0.275。 示例代码如下: public static void main(String[] args) { Thread.currentThr.... Read More >
202305-16 多线程与并发编程 (3/3) 1 常用线程安全类型* 1.1 JDK 基础数据类型与集合类 1.2 ArrayList 基本特点:基于数组,便于使用 index 随机访问,超过数组容量时需要扩容,扩容成本较高。 用途:大部分情况下操作一组数据都可以用 ArrayList。 原理:使用数组模拟列表,默认大小10,扩容x1.... Read More >
202305-15 多线程与并发编程 (2/3) 1 Java并发包(JUC) 1.1 JDK 核心库的包 其中,Java 的并发工具类定义在 java.util.concurrency 包中。 1.2 java.util.concurrency JUC 包中主要包括一下几种类: **锁机制类Locks : **Lock, Con.... Read More >
202305-09 多线程与并发编程 (1/3) 1 多线程基础 1.1 为什么会有多线程 本质原因是摩尔定律失效,CPU 的单核性能没有办法快速提高,从而导致多核+分布式的时代的来临。 多 CPU 核心意味着操作系统有了更多的并行计算资源可以使用。操作系统以线程作为基本的调度单元。单线程是最好处理的。线程越多,管理复杂度越高,跟我们程序员都.... Read More >
202305-05 五种 IO 模型 1 单线程、任意创建线程与线程池的对比 分别使用单线程、任意创建线程的多线程以及线程池的方式实现一个简单的 HTTP Server,使用 Super Benchmark 对其进行压力测试。 单线程 任意创建线程 使用固定大小的线程池 2 NIO 模型与相关概念 通信模型 阻.... Read More >