<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[InsectOfJava的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/InsectOfJava</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; InsectOfJava]]></copyright><item><title><![CDATA[2020-12-19]]></title><link>https://blog.youkuaiyun.com/InsectOfJava/article/details/111410358</link><guid>https://blog.youkuaiyun.com/InsectOfJava/article/details/111410358</guid><author>InsectOfJava</author><pubDate>Sat, 19 Dec 2020 21:20:45 +0800</pubDate><description><![CDATA[Window下C++的线程同步demo
今天考试自我感觉十分不理想，浏览了一下课程中就写的线程同步demo，提会了曾经的思维方式，发现我将约束（同步）抽象较高层次了，条件（顺序）约束需要往下分解才能直接用于实践指导！比如说：

资源个数——初始值为n。
开始活动的信号——初始值0/1。
（以后来补充）

对于资源个数，其实可以通过以不同角度去定义资源来广义地扩大适用范围。
以后有思绪，再来补充吧！
附上代码。一些简单的window API就不解释了。
#include &lt;stdio.h&gt;
#in]]></description><category></category></item><item><title><![CDATA[2020-12-07]]></title><link>https://blog.youkuaiyun.com/InsectOfJava/article/details/110818321</link><guid>https://blog.youkuaiyun.com/InsectOfJava/article/details/110818321</guid><author>InsectOfJava</author><pubDate>Mon, 07 Dec 2020 14:40:00 +0800</pubDate><description><![CDATA[ucosⅡ分析——同步机制
  uCOS同步机制的硬件支持是一个比较坏的方案——关中断，不过由于uCOS的应用领域是单核的嵌入式实时机器，关中断的无法用于多核情况的弊端可以忽略；但关中断的时间消耗还是让效率有所下降（可能是成本较高导致原子操作的底层支持没有）！至于其实现方案和细节下面会仔细陈述；另外在最后讲述一些关键却零碎的关键点。
1 实现的机制
同步机制主要通过事件的释放和等待操作实现，(取消)挂起任务作为事件实现同步机制的补充。事件的具体实现一共有邮箱（mail box）、互斥锁、信号量、消息队列和标]]></description><category></category></item><item><title><![CDATA[2020-12-07]]></title><link>https://blog.youkuaiyun.com/InsectOfJava/article/details/110818126</link><guid>https://blog.youkuaiyun.com/InsectOfJava/article/details/110818126</guid><author>InsectOfJava</author><pubDate>Mon, 07 Dec 2020 14:34:59 +0800</pubDate><description><![CDATA[ucos Ⅱ 多道系统分析——任务管理
1 进程存储和识别
  uCOS的进程被命名为task，由OSTCB作为封装其的数据结构；而其在系统中的唯一标识是task的优先级（TCB中的OSTCBPrio属性），即一个优先级代表着一个任务，没有相同的优先级存在。而优先级高低的判断准则是值越小优先级越高，0是最高优先级。因此系统中的进程的最大数量由优先级最低决定。在1992-1999的版本中，最低优先级默认是12；不过具体值可以根据需求自行修改，只要不要高于63。而不能高于63的原因是受就绪队列存储的方式和数据类]]></description><category></category></item><item><title><![CDATA[2020-12-07]]></title><link>https://blog.youkuaiyun.com/InsectOfJava/article/details/110817918</link><guid>https://blog.youkuaiyun.com/InsectOfJava/article/details/110817918</guid><author>InsectOfJava</author><pubDate>Mon, 07 Dec 2020 14:27:51 +0800</pubDate><description><![CDATA[ucosⅡ总体分析
  ucos一个嵌入式操作系统，它为用户程序提供了运行支撑服务的同时，也要提供作为嵌入式系统，启动用户程序的方式（毕竟大多嵌入式机器是没有鼠标、常规字母键盘的外设）。对于后者，我认为钩子函数是ucos系统启动机器创立用户进程的方式之一（目前不清楚有没有其它方式，在钩子函数模块简单陈述）。
  而对于前者，uCOS为用户程序的运行提供底层支持。底层支持有各类硬件（外设）IO的封装服务和软件服务（多道环境和文件存储等等），不过ucos仅开源了多道和内存分配的C语言实现模块，而内存分配只有提供]]></description><category></category></item><item><title><![CDATA[2020-10-31]]></title><link>https://blog.youkuaiyun.com/InsectOfJava/article/details/109407369</link><guid>https://blog.youkuaiyun.com/InsectOfJava/article/details/109407369</guid><author>InsectOfJava</author><pubDate>Sat, 31 Oct 2020 20:30:22 +0800</pubDate><description><![CDATA[window API 中一些变量前缀的含义
弄window线程的时候，看不懂window.h里面的一些变量为什么好多有一些相似的前缀，弄的好迷，最后百度到的内容。
缘由：
匈牙dao利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是：在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的，结果它在微软内部逐渐流行起来，并且推广给了全世界的Windows开发人员。
匈牙利命名法

a Array 数组
b BOOL (]]></description><category></category></item><item><title><![CDATA[C++ 构造函数]]></title><link>https://blog.youkuaiyun.com/InsectOfJava/article/details/107556409</link><guid>https://blog.youkuaiyun.com/InsectOfJava/article/details/107556409</guid><author>InsectOfJava</author><pubDate>Sun, 26 Jul 2020 09:17:27 +0800</pubDate><description><![CDATA[构造函数
派生类的构造函数执行先后原则是顶级基类到自身，自顶向下的总体过程。而有一些值得注意的“特殊情况”

多继承的时候，构造函数执行的顺序是按类定义的时候基层的顺序,而不是构造函数的定义的顺序。class Derived : public Base1, public Base2 {}原因可能是编译器编译生成相应全局构造函数的时候，已类定义的顺序为基准
当继承的父类是一个虚基类的派生类的时候，该虚基类的构造是由最后的派生类完成，即本身。这是为了避免重复构造虚基类。而这里就出现一个新的需要注意的问题——当所]]></description><category></category></item><item><title><![CDATA[C++ STL vector push_back]]></title><link>https://blog.youkuaiyun.com/InsectOfJava/article/details/104590263</link><guid>https://blog.youkuaiyun.com/InsectOfJava/article/details/104590263</guid><author>InsectOfJava</author><pubDate>Sun, 01 Mar 2020 13:24:58 +0800</pubDate><description><![CDATA[Vector push_back 执行过程
push_back(a) 过程要分两种情况：

当有定义a的拷贝构造器的时候
 首先是调用a的拷贝构造器；
如果还有成员变量没有被初始化，那么会继续调用成员变量的无参数构造器，例如int型会为0，指针为空。
没定义拷构造器
执行浅复制。但如果成员变量声明过拷贝函数，那么会自动调用成员变量的拷贝构造器。
值得注意的是，指针类型的拷贝是就只是多出一个指针指向...]]></description><category></category></item></channel></rss>