<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_63246064的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_63246064</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_63246064]]></copyright><item><title><![CDATA[《Qt》Qt概述（二）]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/135991830</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/135991830</guid><author>weixin_63246064</author><pubDate>Fri, 02 Feb 2024 14:15:35 +0800</pubDate><description><![CDATA[当我们安装好QT后，使用开始菜单找到QT栏，可以找到如下四个栏目这里安装的是QT5.14.0Assistant 5.14.0：QT的英文帮助文档Designer 5.14.0：Qt的图形化编辑界面Linguist 5.14.0：Qt的国际化语言工具，可以帮助我们将发开的工具面向国际化（翻译软件）Qt Creator：Qt的集成开发工具（我们平常开发一般都是使用的这个）新创建的项目，会自动的帮我们生成几个文件widget.hmain.cppwidget.cpp：界面开发一般在这里。]]></description><category></category></item><item><title><![CDATA[《QT》QT概述（一）]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/135942476</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/135942476</guid><author>weixin_63246064</author><pubDate>Tue, 30 Jan 2024 22:46:33 +0800</pubDate><description><![CDATA[开发（程序猿最关注）1）后端开发2）前端开发：又叫大前端开发3）算法工程师4）游戏开发......测试运维产品经理前端开发又有：a）网页前端开发（做网页的）b）桌面应用开发（做电脑上的应用程序的）c）移动应用开发（做手机上的应用程序的）这些前端开发又可以称之为“客户端开发”QT这个技术，就是用来做“客户端开发”的，注意QT不可以做网页和移动开发，它主要用于桌面应用开发注：目前QT官方也支持移动应用开发了，但是市场上似乎还没有什么知名的软件是QT开发的。]]></description><category></category></item><item><title><![CDATA[VS2019中解决一些配置问题]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/135581963</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/135581963</guid><author>weixin_63246064</author><pubDate>Sun, 14 Jan 2024 12:46:07 +0800</pubDate><description><![CDATA[2.选择代码分析，点击常规，将其中的设置全部改为。1.点击项目最下面的属性栏。]]></description><category></category></item><item><title><![CDATA[探究栈帧的奥妙]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/134116707</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/134116707</guid><author>weixin_63246064</author><pubDate>Mon, 30 Oct 2023 13:20:58 +0800</pubDate><description><![CDATA[在我们进行函数调用的时候，编译器都会在栈区为这个函数维护一个栈帧，即每一个函数对应着一个栈帧，这是概念，那么我们通俗的来讲讲什么事栈帧。首先明确一点，我们在进行变量创建的时候，编译器是给这个变量分配了对应的虚拟内存的，即创建变量时，需要一定的开销，而这个开销一部分就是体现在内存占用上，那么回到函数调用这里来，和创建变量类似，函数也是一个类型，在进行调用的时候同样也需要一定的内存开销，这个函数占用的内存空间就是这个函数的栈帧，即栈帧=占用内存。]]></description><category></category></item><item><title><![CDATA[＜数据结构＞AVL树详解]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/132541024</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/132541024</guid><author>weixin_63246064</author><pubDate>Mon, 28 Aug 2023 18:59:15 +0800</pubDate><description><![CDATA[AVL树又叫平衡树(Balance_Tree)，笔者认为这个名字非常不错，中国嘛，就是在意阴阳平衡，之前小编还拿这个当过自己网络IP，哈哈哈。]]></description><category></category></item><item><title><![CDATA[＜高阶数据结构＞图]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/131790077</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/131790077</guid><author>weixin_63246064</author><pubDate>Mon, 28 Aug 2023 15:57:31 +0800</pubDate><description><![CDATA[我们只需借助一个队列来辅助实现，这里我们先将A入队列，在A出队列的时候，将A连通的最近一层B,C,D入队列，B出队列时将E入队列，如此运行直到队列为空时，遍历结束，出队列顺序即时我们的遍历次序。从某一顶点开始，选择该顶点连接的边中权值最小的边，再到下一顶点选连接的边中最小权值的边，同样需要记录一下已经选过了的顶点。借助一个队列实现，和广度优先遍历方法有点类似，只不过这里只需要选择最小权值边的顶点。为了防止B出队列时，再次将A和C入队列，可以开一个标记容器，标记入了队列的顶点。组成：G = (V, E)]]></description><category></category></item><item><title><![CDATA[＜数据结构＞并查集]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/131751394</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/131751394</guid><author>weixin_63246064</author><pubDate>Sun, 16 Jul 2023 16:17:04 +0800</pubDate><description><![CDATA[上面我们把十个人分为了不同几个小组，他们来自不同的地方，吃的口味自然不同，于是就分别让0,1,2这三个人担任组长，带领各自的队伍去吃饭。并查集和堆一样，都是通过数组来实现树的节点映射，不过并查集作用是，把一堆数据分为不同的几个小集合。不过并查集是森林的概念，并查集的学习可以帮助我们去更好的学习图这个数据结构。2.如果该结点是双亲结点，存放一个负数，我们可以顺便存放这棵树的结点个数。我们只需要将整个数组遍历一遍，找到为负数的位置有多少个，即集合的数量。队长可以抽象的理解为头结点，组员理解为各自的孩子结点。]]></description><category></category></item><item><title><![CDATA[＜网络＞UPD协议详解]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/131716108</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/131716108</guid><author>weixin_63246064</author><pubDate>Fri, 14 Jul 2023 09:41:14 +0800</pubDate><description><![CDATA[答案是不是的，这些IO类的函数，其实本质上就是一个拷贝函数，那么拷贝数据在哪去呢，在系统层面维护了一个缓冲区，这个缓冲去是UDP协议提供的，当我们调用了发送函数之后，我们是先把数据拷贝到UDP的发送缓冲区，再由UDP自己决定什么时候发送，当我们调用了接受函数之后，我们做的事是把UDP的接受缓冲区的数据，拷贝到我们用户层的缓冲中去。我们注意到, UDP协议首部中有一个16位的最大长度. 也就是说一个UDP能传输的数据最大长度是64K(包含UDP首。然而64K在当今的互联网环境下, 是一个非常小的数字.]]></description><category></category></item><item><title><![CDATA[HTTP协议]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/131687653</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/131687653</guid><author>weixin_63246064</author><pubDate>Wed, 12 Jul 2023 18:17:48 +0800</pubDate><description><![CDATA[协议就是一种约定，你客户端和服务器约定了某种方式去通讯我们主机之间的连接通过硬件+代码可以实现，在这个连接好的基础上，再制定一种协议，通信双方通过这个协议的规则进行有条不紊的，有保障性的通信。其实底层呢其实也就是一种大量的文本处理，这些约定好了的特殊的文本格式，使我们通信的时候更加的有保障。]]></description><category></category></item><item><title><![CDATA[＜网络＞TCP代码协议编写]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/131604621</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/131604621</guid><author>weixin_63246064</author><pubDate>Sat, 08 Jul 2023 18:59:35 +0800</pubDate><description><![CDATA[这篇文章我们就主要实现一下如何使用TCP进行完整的网络通信首先我们需要了解什么事TCP，TCP是一种传输控制协议，我们暂且先记住这个。现在我们先开始，第一呢，我们要实现客户端和服务端的网络通信，两个不同的主机之间通信是通过什么？答案是每台主机的网络IP，在我们的电脑进行上网的时候，会自动给我们的电脑分配一个该局域网内的IP。好的，现在我们的两台主机相互的找到了对方，然后再看看我们要做的是什么，两台主机之间的通信对不对！]]></description><category></category></item><item><title><![CDATA[＜网络编程＞网络基础]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/130305207</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/130305207</guid><author>weixin_63246064</author><pubDate>Fri, 07 Jul 2023 21:12:06 +0800</pubDate><description><![CDATA[了解网络发展背景，对局域网/广域网的概念认识了解网络协议意义，重点理解TCP/IP五层结构学习网络传输的基本流程，理解封装和分用。]]></description><category></category></item><item><title><![CDATA[＜C++项目＞高并发内存池]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/128745592</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/128745592</guid><author>weixin_63246064</author><pubDate>Thu, 22 Jun 2023 10:57:15 +0800</pubDate><description><![CDATA[原型是goole的开源项目tcmalloc(全称:Thread-Caching Malloc),用于替代系统的内存分配相关的函数(malloc, free).知名度非常高。项目要求知识储备和难度：会用到C/C++、数据结构(链表、哈希桶)、操作系统内存管理、单例模式、多线程、互斥锁等等。什么是内存池池化技术所谓“池华技术”，就是程序先向系统申请过量的资源，内存池要解决的两个问题一）效率问题：举个例子，我们向家里要生活费，有两种方式；每次要花钱时都去找爸爸妈妈。]]></description><category></category></item><item><title><![CDATA[＜网络编程＞网络套接字]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/130339574</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/130339574</guid><author>weixin_63246064</author><pubDate>Wed, 26 Apr 2023 12:28:26 +0800</pubDate><description><![CDATA[IP地址(公网IP, IPV4 32位)，IP地址早已经不够了，采用将网络划分为局域网IP和公网IP，IP在特定的网络中保证主机唯一性。我们通信的目的是将数据传输到对方机器上面的软件客户端 -> 客户端进程， 服务器软件 -> 服务器进程。端口号：传输层协议的一个内容，用来标识一个进程(唯一性)，用端口号来交付数据。，将数据在主机间转发仅仅是手段，机器收到之后，需要将数据交付给指定的进程！不可靠传输：只负责把数据给下层，其他的不管，丢包就丢包咯。可靠传输：为了保证可靠，就会设计更多的策略，保证不丢包。]]></description><category></category></item><item><title><![CDATA[＜Linux＞POSIX信号量]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/130254124</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/130254124</guid><author>weixin_63246064</author><pubDate>Fri, 21 Apr 2023 21:02:30 +0800</pubDate><description><![CDATA[只要保证共享资源任何时刻都只有一个执行流在进行访问，就有了临界资源和临界区的概念。互斥（加锁）时候，共享资源是被当做整体使用的。如果不同线程访问的是共享资源中的不同的位置，这个共享资源就可以分开来使用，让不同的执行流访问不同的区域，就可以继续并发了。那么我们如何知道这个一共有多少个资源，还剩多少个？自己初始化的你怎么保证这个资源就是给你的？程序员编码我怎么知道我一定可以具有一个共享资源呢？信号量电影院的例子：买票的本质：叫做资源(座位)的预定机制。]]></description><category></category></item><item><title><![CDATA[＜Linux嵌入式_点灯＞]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/127424684</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/127424684</guid><author>weixin_63246064</author><pubDate>Sun, 02 Apr 2023 20:56:29 +0800</pubDate><description><![CDATA[那么我们来看看我们开发板上关于发光二极管的原理图，这里我学习使用的是IMX6ULL_Linux开发板。下图，我们看到开发板上已经默认给LED灯正极一个3V3的拉高高电平了，我们想要点亮它只需要在另外一端。翻看参考手册，在700页我们看到，GPIO1的时钟在CCM_CCGR1中设置，为了简便我们可以把所有的外设时钟都打开，将CCM_CCGR0~6写入0xffffffff即可。查看相关原理图，我们看到，和LED0相关的外设是GPIO1的IO3,我们首先打开GPIO1的外设时钟。4、设置GPIO使用哪个IO口。]]></description><category></category></item><item><title><![CDATA[＜Linux＞system v通信]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/129424971</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/129424971</guid><author>weixin_63246064</author><pubDate>Thu, 09 Mar 2023 16:40:57 +0800</pubDate><description><![CDATA[首先我们梳理一遍进程的创建，当我们创建进程A时，操作系统对进程遵循的是先描述在组织的管理方式，要描述就需要创建特定的数据结构来进行存储相应的描述数据，所以操作系统会为A创建对应的数据结构，这其中会创建一个task_struct结构体来记录这个进程的相关数据，同时操作系统会对每一个进程创建一个进程地址空间mm_struct，而task_struct里面有一个指针来指向这个进程地址空间，不清楚进程地址空间的，可以先将它想象成操作系统为这个进程画的大饼，告诉这个进程：你可以使用很多的内存，即虚假的内存。]]></description><category></category></item><item><title><![CDATA[＜Linux＞进程池 -- 练习]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/129374450</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/129374450</guid><author>weixin_63246064</author><pubDate>Tue, 07 Mar 2023 08:20:46 +0800</pubDate><description><![CDATA[注意要实现的是父进程对子进程的通信，发送数据的只有一个进程，而管道是通过fd文件描述符来实现通信的，所以我们需要记录每一个子进程对应的管道，以此来建立父进程对多个子进程之间的联系。(隐藏的意思就是我们只需要对子进程的对应的管道文件发送数据，就可基本实现通信了)这里实现的进程池：一个父进程对多个子进程进行管道通信，大致如下。以下代码，是根据所列的框架所写的，可以参考。知道需要创建几个子进程来进行通信。和这些子进程创建同数量的管道。三、具体的接收和发送实现处理。实现子进程的数据接收。实现父进程的数据发送。]]></description><category></category></item><item><title><![CDATA[＜Linux＞进程间通信--管道]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/129360027</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/129360027</guid><author>weixin_63246064</author><pubDate>Mon, 06 Mar 2023 15:20:30 +0800</pubDate><description><![CDATA[管道一般用于父子间通信。管道具有通过进程间协同，提供的访问控制。管道提供的是面向流式的通信服务 -- 字节流。管道是基于文件的，文件的生命周期是随进程的，管道也是。管道是单向通信的，是半双工的一种特殊情况。]]></description><category></category></item><item><title><![CDATA[＜Linux＞vscode搭建Linux远程开发工具]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/129129706</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/129129706</guid><author>weixin_63246064</author><pubDate>Mon, 20 Feb 2023 19:14:39 +0800</pubDate><description><![CDATA[下载完Remote - SSH 后，左边会多出来一个电脑的图标，打开就会发现刚刚添加的服务器IP.(如果没有可能是没刷新，退出重进一下试试)，右键我们的添加的服务器IP，出现的两个选项任选一个。在vscode中我们可以直接使用Linux终端的命令行进行代码的编译和运行(省略了我们大部分的配置时间)打开左上角的资源管理器，选择打开文件，我这里是已经打开了(会让你在输入一次密码)弹出以下的界面，输入我们的服务器账户密码即可连接成功。这里推荐的是去国内的镜像网站去下载。然后就可以进行文件和代码的编写了。]]></description><category></category></item><item><title><![CDATA[＜C++＞手撕搜索二叉树]]></title><link>https://blog.youkuaiyun.com/weixin_63246064/article/details/128122126</link><guid>https://blog.youkuaiyun.com/weixin_63246064/article/details/128122126</guid><author>weixin_63246064</author><pubDate>Wed, 30 Nov 2022 21:22:39 +0800</pubDate><description><![CDATA[搜索二叉树主要实现的是K或K/Value模型，这里我们使用K模型来定义，即可以用O(N)的时间复杂度来进行K值的搜索。使用模板来定义{K _key;{}};]]></description><category></category></item></channel></rss>