[argo]argo基础 argo基础1 安装argo workflowsargo一般安装在命名空间argo中 1kubectl create ns argo 在Release v3.6.5 · argoproj/argo-workflows中找到要安装的版本。 1kubectl apply -n argo -f https://github.com/argoproj/argo-workflows/releas 2025-03-17 argo
[k8s]k8s基础 1 使用minikube创建一个集群1.1 kubernetes集群Kubernetes协调一组高度可用的计算机,这些计算机连接在一起以作为一个单一单元工作。k8s提供的抽象可以把容器化的应用部署到集群上,而无需将应用指定到具体的机器上。应用必须容器化。k8s会自动负责应用容器在集群中的分布和调度。 k8s集群包含两种资源: 控制平面负责协调整个集群 Node负责运行应用。 Node是一个实际的 2025-03-15 k8s
[C++]C++并发编程实战Chapter7 7 设计无锁数据结构定义和推论算法和数据结构中只要采用了互斥、条件变量或future进行同步操作,就称之为阻塞型算法和阻塞型数据结构。操作系统往往会把被阻塞的线程彻底暂停,并将其时间片分配给其他线程,等到有线程执行了恰当的操作,阻塞方被解除。 非阻塞型数据结构12345678910111213141516class spinlock_mutex{ std::atomic_flag 2025-02-22 C++ #C++ #多线程
[C++]C++并发编程实战Chapter5 5 C++内存模型和原子操作内存模型基础对象、内存区域和并发所有与多线程相关的事项都会牵涉内存区域。如果两个线程各自访问分离的内存区域,则相安无事,一切运作良好;反之,如果两个线程访问同一内存区域,我们就要警惕了。假使没有线程更新内存区域,则不必在意,只读数据无须保护或同步。 任一线程改动数据都可能引发条件竞争。要避免条件竞争,就必须强制两个线程按一定的次序访问。 可以用互斥来保证这种次序。 利 2025-02-17 C++ #C++ #多线程
[PRO]内存池 内存池1 介绍什么是内存池内存池是一种预分配内存并进行重复利用的技术。减少动态内存的分配与释放,提升程序运行效率。本质上是申请一块较大的内存,之后在应用层对这块内存进行管理,减少系统调用的开销。 优点 减少动态内存分配的开销 避免内存碎片 降低系统调用频率 稳定分配时间 缺点 初始内存占用较大 复杂 不适合大型对象 应用场景 高频小对象分配 游戏开发:粒子、子弹、npc等 网络编程 2025-02-15 项目 #内存池
[MySql]Mysql 1 基础知识1.1 数据库相关概念数据库:存储数据的仓库,其中数据是有组织的存储起来的。 数据库管理系统:操纵和管理数据库的软件 SQL:操纵关系型数据库的编程语言。 1.2 MySQL数据库的安装windows直接去官网下载安装包,按照默认安装即可。 启动和停止 windows+r 输入services.msc找到mysql80。 命令行输入 net start mysql80 net sto 2025-01-29 数据库 #MySql
[C++]C++并发编程实战Chapter6 设计基于锁的并发数据结构并发设计的内涵线程安全 多线程执行的操作无论异同,每个线程所见的数据结构都是自恰的;数据不会丢失或破坏,所有不变量终将成立,恶性条件竞争也不会出现。 真正的并发 保护的范围越小,需要的串行化操作就越少,并发程度就可能越高。 基于锁的并发数据结构基于锁实现线程安全的栈容器12345678910111213141516171819202122232425262728293031 2025-01-29 C++ #C++ #多线程
[C++]C++并发编程实战Chapter4 4 并发操作的同步4.1 等待事件或等待其他条件线程A需要等待线程B完成任务,有几种方式 在共享数据内部维护一个标志(互斥保护),线程B完成后,设置该标志。 这种方法中线程A必须不断轮询检查标志。存在资源浪费。 让线程A调用 std::this_thread::sleep_for() 函数,在各次检验之间短暂休眠。 123456789101112bool flag;std::mutex 2025-01-26 C++ #C++ #多线程
[C++]C++并发编程实战Chapter3 3 在线程间共享数据3.1 线程间共享数据的问题 归根结底,多线程共享数据的问题多由数据改动引发。如果所有共享数据都是只读数据,就不会有问题。 不变量(invariant) 它是一个针对某一特定数据的断言,该断言总是成立的,例如“这个变量的值即为链表元素的数目”。数据更新往往会破坏这些不变量。 改动线程间的共享数据,可能导致不变量被破坏。例如对于双向 2025-01-26 C++ #C++ #多线程
[C++]C++并发编程实战Chapter2 2 线程管控2.1 线程的基本管控每个C++程序都含有至少一个线程,即运行main()的线程,它由C++运行时(C++ runtime)系统启动。随后,程序就可以发起更多线程,它们以别的函数作为入口(entry point)。这些新线程连同起始线程并发运行。当main()返回时,程序就会退出;同样,当入口函数返回时,对应的线程随之终结。 2.1.1 发起线程线程通过构建 std::thread 对 2025-01-24 C++ #C++ #多线程