摘要: 异步编程 async 、future 基本概念和使用: 异步执行函数:std::async 可以异步执行一个函数,这意味着函数将在后台线程中执行,而当前线程可以继续执行其他任务。 返回值获取:你可以获得函数的返回值,或者得到一个 std::future 对象,它允许你在将来的某个时刻获取函数的结果。 阅读全文
posted @ 2023-10-30 19:34 vLiion 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 线程池 Thread Pool 线程池简单来说就是用来管理多个线程的,以避免频繁开辟或销毁线程的情况。 以下是创建和使用线程池的基本步骤: 创建一个任务队列,用于存储待执行的任务。 创建一组线程,这些线程会从任务队列中获取任务并执行它们。 将任务提交到任务队列中,由线程池的线程异步执行。 线程池会不 阅读全文
posted @ 2023-10-30 16:20 vLiion 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 互斥锁 std::mutex 当涉及到多线程编程时,互斥锁(Mutex)是一种同步机制,用于保护共享资源免受并发访问的影响。以下是一个简单的C++互斥锁示例: #include <iostream> #include <thread> #include <mutex> std::mutex mtx; 阅读全文
posted @ 2023-10-30 04:36 vLiion 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 什么是线程? 在计算机科学中,线程是进程中的一个执行控制单元,也被称为执行路径。每个进程可以包含多个线程,每条线程并行执行不同的任务。线程是操作系统可识别的最小执行和调度单位。 进程和线程的区别 进程是程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。每个进程都有独立的地 阅读全文
posted @ 2023-10-29 17:02 vLiion 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 基于规则的优化 我们在写一些 mysql 语句时。可能会写一些耗费性能的语句。这时候我们可以利用查询重写将糟糕的语句转化成某种可以高效执行的形式。 条件化简 将我们写的复杂表达式进行简化。 1. 移除不必要的括号 举例: 可将SELECT * FROM (t1, (t2, t3)) WHERE .. 阅读全文
posted @ 2023-10-26 12:51 vLiion 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 🧐 题目 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼1091∼109 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表 阅读全文
posted @ 2023-09-25 13:54 vLiion 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 《Java核心技术卷Ⅰ》阅读笔记,更新中—— 第一章 Java程序设计概述 1.1 Java白皮书 1)简单性 2)面向对象 3)分布式 4)健壮性 5)安全性 6)体系结构中立 7)可移植性 8)解释性 9)高性能 10)多线程 11)动态性 1.1.1 简单性 Java可以说是C++的一个纯净版 阅读全文
posted @ 2023-09-24 17:31 vLiion 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 《MySQL是怎样运行的》阅读笔记,更新中—— 第一章 初始MySQL 1.1 启动MySQL客户端程序 启动MySQL命令 参数:mysql -h主机名 -u用户名 -P端口 -p密码 如果要在一行命令中显式输入密码,那么-p后面接密码不能加空格(其它参数无所谓) 断开客户端与服务器的连接且关闭客 阅读全文
posted @ 2023-09-23 23:52 vLiion 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 《C++ Primer Plus》阅读笔记,更新中—— 第一章 预备知识 1.1 C++简介 C++编程语言融合了3种不同的编程方式:C语言代表的过程性语言、面向对象语言、C++模板支持的泛型编程。 1.2 C++简史 C语言 20世纪70年代,贝尔实验室的Dennis Ritchie致力开发UNI 阅读全文
posted @ 2023-09-23 22:30 vLiion 阅读(120) 评论(0) 推荐(0) 编辑