<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[D_Guco的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/D_Guco</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; D_Guco]]></copyright><item><title><![CDATA[ai浪潮下ai编程真的会淘汰程序员吗]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/146876766</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/146876766</guid><author>D_Guco</author><pubDate>Mon, 31 Mar 2025 18:58:36 +0800</pubDate><description><![CDATA[ai浪潮下ai编程真的会淘汰程序员吗]]></description><category></category></item><item><title><![CDATA[多核时代下线程间的内存可见性]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/141470434</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/141470434</guid><author>D_Guco</author><pubDate>Fri, 23 Aug 2024 18:05:45 +0800</pubDate><description><![CDATA[多核时代下线程间的内存可见性]]></description><category></category></item><item><title><![CDATA[Qt::QOpenGLWidget 渲染天空壳]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/129262069</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/129262069</guid><author>D_Guco</author><pubDate>Tue, 28 Feb 2023 16:22:56 +0800</pubDate><description><![CDATA[Qt::QOpenGLWidget 渲染天空壳]]></description><category></category></item><item><title><![CDATA[红黑树hashmap-RbtHashMap实现]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/124908719</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/124908719</guid><author>D_Guco</author><pubDate>Sun, 22 May 2022 13:39:41 +0800</pubDate><description><![CDATA[基于红黑树的固定长度的hashmap实现，对c++标准库map的进一步优化]]></description><category></category></item><item><title><![CDATA[Qt::QOpenGLWidget渲染带光照的立方体]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/123308278</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/123308278</guid><author>D_Guco</author><pubDate>Sun, 06 Mar 2022 13:18:28 +0800</pubDate><description><![CDATA[Qt::QOpenGLWidget调用opengl渲染框架渲染立方体加光照]]></description><category></category></item><item><title><![CDATA[内存的申请和释放]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/122144711</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/122144711</guid><author>D_Guco</author><pubDate>Sat, 25 Dec 2021 19:27:48 +0800</pubDate><description><![CDATA[内存的申请和释放,malloc,free干了什么，delete[]和delete的区别]]></description><category></category></item><item><title><![CDATA[过家家巧说raft算法]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/121315358</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/121315358</guid><author>D_Guco</author><pubDate>Sun, 14 Nov 2021 11:56:14 +0800</pubDate><description><![CDATA[一 一致性

  一致性是指分布式系统中的多个服务节点，给定一系列操作，在特定协议的保障下，使这些节点对外呈现的状态是一致的，即保证集群中所有服务节点中的数据完全相同并且能够对某个提案达成一致，为什么需要一致性?
1 数据不能存在单个节点（主机）上，否则可能出现单点故障。
2 多个节点（主机）需要保证具有相同的数据。
3 一致性算法就是为了解决上面两个问题。

二 Raft算法

   Raft是实现分布式共识的一种算法，主要用来管理日志复制的一致性。它和Paxos的功能是一样，但是相比于Pax...]]></description><category></category></item><item><title><![CDATA[固定长度hashmap实现]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/120402492</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/120402492</guid><author>D_Guco</author><pubDate>Tue, 21 Sep 2021 17:16:01 +0800</pubDate><description><![CDATA[固定长度的hashmap代码实现]]></description><category></category></item><item><title><![CDATA[lua和c++交互]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/119057177</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/119057177</guid><author>D_Guco</author><pubDate>Sat, 24 Jul 2021 15:46:07 +0800</pubDate><description><![CDATA[交互原理

Lua教程:绑定一个简单的C++类(6)

Lua教程:C/C++操作Lua数组和字符串(5)

Lua教程：Lua调用C/C++函数(4)

Lua教程：C/C++调用Lua的Table(3)

Lua教程:C++和Lua相互传递数据(2)

Lua教程: C++嵌入Lua脚本(1)
]]></description><category></category></item><item><title><![CDATA[TiDB 数据库开发规范]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/118273333</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/118273333</guid><author>D_Guco</author><pubDate>Sun, 27 Jun 2021 14:07:16 +0800</pubDate><description><![CDATA[原文链接：https://asktug.com/t/topic/93819

一、前言

1. 目的

  本文档旨在为使用 TiDB 数据库的应用和系统提供统一规范参考，标准化 TiDB 数据库的开发使用及SQL优化流程，提高业务开发系统的规范性和代码的可读性，减轻维护工作量，提高工作效率。

2. 适用范围

TiDB 数据库开发设计人员
	数据库管理人员
	数据库运营人员
	数据分析人员
	数据库架构师
4. 注意事项

TiDB 暂时不支持的特性：

存储过程
	触发器
	自定义函数
	外键约束..]]></description><category></category></item><item><title><![CDATA[检测指针被意外写坏]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/114218116</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/114218116</guid><author>D_Guco</author><pubDate>Sun, 28 Feb 2021 13:53:23 +0800</pubDate><description><![CDATA[如何检测指针被意外写坏]]></description><category></category></item><item><title><![CDATA[opengl学前知识]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/113094791</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/113094791</guid><author>D_Guco</author><pubDate>Sat, 30 Jan 2021 21:32:00 +0800</pubDate><description><![CDATA[opengl基础知识扫盲]]></description><category></category></item><item><title><![CDATA[opengl开发环境搭建]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/112426912</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/112426912</guid><author>D_Guco</author><pubDate>Sun, 10 Jan 2021 14:49:23 +0800</pubDate><description><![CDATA[一 安装cmake

  cmake是一个跨平台的c/c++项目管理工具，下面我们编译安装相关依赖库的时候需要用到。下载页，下载后安装即可。



二 安装GLFW

   在我们画出出色的效果之前，首先要做的就是创建一个OpenGL上下文(Context)和一个用于显示的窗口。然而，这些操作在每个系统上都是不一样的，OpenGL有目的地将这些操作抽象(Abstract)出去。这意味着我们不得不自己处理创建窗口，定义OpenGL上下文以及处理用户输入。幸运的是，有一些库已经提供了我们所需的功...]]></description><category></category></item><item><title><![CDATA[初识OpenGL]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/112060585</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/112060585</guid><author>D_Guco</author><pubDate>Fri, 01 Jan 2021 17:16:45 +0800</pubDate><description><![CDATA[一 认识GPU

   GPU全称是GraphicProcessing Unit－－图形处理器，其最大的作用就是进行各种绘制计算机图形所需的运算，包括顶点设置、光影、像素操作等。GPU实际上是一组图形函数的集合，而这些函数有硬件实现，只要用于3D游戏中物体移动时的坐标转换及光源处理。在很久以前，这些工作都是由CPU配合特定软件进行的，后来随着图像的复杂程度越来越高，单纯由CPU进行这项工作对于CPU的负荷远远超出了CPU的正常性能范围，这个时候就需要一个在图形处理过程中担当重任的角色，GPU也就是从那...]]></description><category></category></item><item><title><![CDATA[libgo源码分析之多线程协程管理和调度]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/110717978</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/110717978</guid><author>D_Guco</author><pubDate>Sat, 05 Dec 2020 20:50:59 +0800</pubDate><description><![CDATA[上篇文章libco协程切换原理详解中分析了协程的切换原理，并且也说到了建议用libgo代替libco，因为libgo的协程切换原理是从boost中分离出来的，其实现原理和libco基本上是一样的，不再分析，这里我们主要分析一下libgo多线程协程的管理和调度，因为这一部分libco是没有实现的。首先我们看一段多线程示例。


/************************************************
 * libgo sample1
********************...]]></description><category></category></item><item><title><![CDATA[libco协程切换原理详解]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/109684529</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/109684529</guid><author>D_Guco</author><pubDate>Sat, 14 Nov 2020 01:04:30 +0800</pubDate><description><![CDATA[一 备用知识

   之前不止一次的把libco的源码下下来看，但是每次看到协程切换汇编部分都放弃了，大学那点仅有的汇编基础也忘的一干二净，更不堪的是百度搜到的libco相关文章也看不懂，最近决定静下心来看一些相关的东西，终于像啃骨头一样把这块东西搞明白了。在网下阅读之前请先务必看懂下面的内容。

第一部分 汇编基础

 1 CSAPP阅读笔记-汇编语言初探(数据传送类指令):CSAPP阅读笔记-汇编语言初探(数据传送类指令)
 2 CSAPP阅读笔记-汇编语言初探(算术和逻辑操作类指令)...]]></description><category></category></item><item><title><![CDATA[Go 语言设计与实现]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/109547361</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/109547361</guid><author>D_Guco</author><pubDate>Sat, 07 Nov 2020 15:27:52 +0800</pubDate><description><![CDATA[第一部分 预备知识

第一章 准备工作

1.1 调试 Go 语言



第二章 编译原理

目录

第一部分 预备知识

第一章 准备工作

1.1 调试 Go 语言

第二章 编译原理

2.1 概述

2.2 词法和语法分析

2.3 类型检查

2.4 中间代码生成

2.5 机器码生成

2.1 概述

2.2 词法和语法分析

2.3 类型检查

2.4 中间代码生成

2.5 机器码生成
...]]></description><category></category></item><item><title><![CDATA[mutex如何保证数据的一致性和正确性]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/109544621</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/109544621</guid><author>D_Guco</author><pubDate>Sat, 07 Nov 2020 11:33:04 +0800</pubDate><description><![CDATA[一 mutex如何保证数据的一致性和正确性
  最近突然关于mutex有一个疑问，当我们在开发多线程程序的时候第一个想到的就是用mutex来保护我们的多线程共享变量，保证数据的一致性和正确性，那mutex到底是如何保证的呢？
  1 原子访问:避免线程在访问数据对象时，另一线程正在修改它
  2 内存可见性:一旦线程修改数据对象，其它线程在修改行为发生之后马上能看见此对象的最新新状态
  对于第一点是我之前一直熟知的mutex具有的功能，对于第二点虽然之前了解过关于内存可见性相关的知识但是没...]]></description><category></category></item><item><title><![CDATA[从零开始搭建tidb集群]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/94746802</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/94746802</guid><author>D_Guco</author><pubDate>Wed, 12 Aug 2020 17:29:11 +0800</pubDate><description><![CDATA[参考文章：TiDB-Ansible 部署方案

  很早就想亲手搭一下tidb集群，昨天搞了一下午结果失败了（因为自己买的机器配置太低，还有自己配置环境的时候有些配置没配好），今天把之前的机器删掉又重新申请机器按照文档把所有的步骤重新走了一遍，总算成功了。

一 准备机器

 首先看一下官方的配置要求：TiDB 软件和硬件环境建议配置 ， 官方配置要求很高（当然价格也很高，没钱啊），而...]]></description><category></category></item><item><title><![CDATA[分析libevent 内部运行流程]]></title><link>https://blog.youkuaiyun.com/D_Guco/article/details/107298441</link><guid>https://blog.youkuaiyun.com/D_Guco/article/details/107298441</guid><author>D_Guco</author><pubDate>Sun, 12 Jul 2020 18:36:41 +0800</pubDate><description><![CDATA[Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库，主要有以下几个亮点：事件驱动（ event-driven），高性能;轻量级，专注于网络，不如 ACE 那么臃肿庞大；源代码相当精炼、易读；跨平台，支持 Windows、 Linux、 *BSD 和 Mac Os；支持多种 I/O 多路复用技术， epoll、 poll、 dev/poll、 select 和 kqueue 等；支持 I/O，定时器和信号等事件；注册事件优先级。

  实际上Libevent只是对epol...]]></description><category></category></item></channel></rss>