<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[annewplayer的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/annewplayer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; annewplayer]]></copyright><item><title><![CDATA[linux学习日记]]></title><link>https://blog.youkuaiyun.com/annewplayer/article/details/152524439</link><guid>https://blog.youkuaiyun.com/annewplayer/article/details/152524439</guid><author>annewplayer</author><pubDate>Fri, 13 Mar 2026 23:59:26 +0800</pubDate><description><![CDATA[我们可以尝试将策略更改为“写优先”，当写操作阻塞时，读线程无法获取锁，避免了写线程持有锁的时间持续延长，使得写线程获取锁的等待时间显著降低，从而避免写饥饿问题。每个线程都有一个唯一的标识符（即线程ID），这个标识符是通过pthread_t类型的变量来表示的，当pthread_create成功创建一个线程时，它会将新线程的标识符存储在thread参数指向的位置。写操作将会阻塞，直到所有的读锁都被释放。在使用读写锁时，写线程可能无限期地等待获取写锁，因为读线程持续地获取读锁而不断地推迟写线程的执行；]]></description><category></category></item><item><title><![CDATA[stm，铁头山羊代码]]></title><link>https://blog.youkuaiyun.com/annewplayer/article/details/149225150</link><guid>https://blog.youkuaiyun.com/annewplayer/article/details/149225150</guid><author>annewplayer</author><pubDate>Sat, 06 Sep 2025 22:59:35 +0800</pubDate><description><![CDATA[I2Cx_SCL:I2C时钟，开漏复用输出。I2Cx_SDA:I2C数据，开漏复用输出。使用代码：当显示屏亮起，板载led亮。led长端接阳极，按钮看底部连线。按4.4，点亮显示屏，但未亮。设置系统板上绿灯闪烁。I2C发送字节（未成功。为串口初始化IO引脚。]]></description><category></category></item><item><title><![CDATA[godot学习笔记]]></title><link>https://blog.youkuaiyun.com/annewplayer/article/details/145561051</link><guid>https://blog.youkuaiyun.com/annewplayer/article/details/145561051</guid><author>annewplayer</author><pubDate>Sun, 06 Apr 2025 15:30:15 +0800</pubDate><description><![CDATA[可以在任意脚本直接访问的对象，分为内置和自定义；不是节点，可以直接使用控制图形和音效；例：Input，对玩家按键情况进行反馈Input.get_action_strength(”自定义按键“)//按下为true，没按为0在某一节点可以使用self指定其本身，position代表其位置.x和 .y可以访问坐标。]]></description><category></category></item><item><title><![CDATA[stl容器算法；]]></title><link>https://blog.youkuaiyun.com/annewplayer/article/details/145788579</link><guid>https://blog.youkuaiyun.com/annewplayer/article/details/145788579</guid><author>annewplayer</author><pubDate>Sat, 22 Feb 2025 01:13:30 +0800</pubDate><description><![CDATA[for (声明 : 序列) {// 循环体}序列：可以是数组、容器（如 std::vector、std::list）或任何支持 begin()/end() 迭代器的对象。声明：定义循环变量的类型和名称，通常使用 auto 自动推导元素类型。auto    拷贝成本高    副本可改    基本类型或需要临时修改auto&    无拷贝    原元素可改    需要修改原容器元素const auto&    无拷贝    不可修改    只读访问大型对象。]]></description><category></category></item><item><title><![CDATA[基础123]]></title><link>https://blog.youkuaiyun.com/annewplayer/article/details/145523396</link><guid>https://blog.youkuaiyun.com/annewplayer/article/details/145523396</guid><author>annewplayer</author><pubDate>Sat, 08 Feb 2025 21:32:34 +0800</pubDate><description><![CDATA[动态多态满足条件 （函数地址晚绑定1.有继承关系；2.子类重写父类的虚函数；//函数返回值类型，函数名，参数列表完全相同使用条件：******父类的指针或引用 指向子类对象*********例：animal&a=cat;a.speak();void show(animal& a)//父类引用a.laugh();//父类虚函数非静态成员函数不占类内存当子类重写父类的虚函数，子类的虚函数表 内部 会替换成 子类的虚函数地址；]]></description><category></category></item></channel></rss>