<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lclfeng的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lclfeng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lclfeng]]></copyright><item><title><![CDATA[spring-boot 指定外部配置文件]]></title><link>https://blog.youkuaiyun.com/lclfeng/article/details/126374929</link><guid>https://blog.youkuaiyun.com/lclfeng/article/details/126374929</guid><author>lclfeng</author><pubDate>Wed, 17 Aug 2022 00:43:16 +0800</pubDate><description><![CDATA[spring-boot 支持从外部加载配置文件。]]></description><category></category></item><item><title><![CDATA[Activity启动模式的一些点]]></title><link>https://blog.youkuaiyun.com/lclfeng/article/details/119845912</link><guid>https://blog.youkuaiyun.com/lclfeng/article/details/119845912</guid><author>lclfeng</author><pubDate>Sun, 22 Aug 2021 22:56:35 +0800</pubDate><description><![CDATA[这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
欢迎使用Markdown编辑器
你好！ 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar]]></description><category></category></item><item><title><![CDATA[并发的竞态条件和临界区]]></title><link>https://blog.youkuaiyun.com/lclfeng/article/details/113827820</link><guid>https://blog.youkuaiyun.com/lclfeng/article/details/113827820</guid><author>lclfeng</author><pubDate>Tue, 16 Feb 2021 20:08:11 +0800</pubDate><description><![CDATA[并发的竞态条件和临界区前言竞态条件临界区举例[^2]
前言
要想理解多线程之间的竞争，首先需要知道什么是竞态条件和临界区
竞态条件

竞态条件是指一个在设备或者系统试图同时执行两个操作的时候出现的不希望的状况，但是由于设备和系统的自然特性，为了正确地执行，操作必须按照合适顺序进行。

简单点讲就是同一个程序的多个线程访问同一个资源1 时，程序执行的结果不符合预期，就称存在竞态条件。
临界区
多个线程访问同一个资源的 程序片段（代码） 称之为临界区
举例2
public class Counter {

  ]]></description><category></category></item><item><title><![CDATA[LeetCode 82. 删除排序链表中的重复元素 II]]></title><link>https://blog.youkuaiyun.com/lclfeng/article/details/106462765</link><guid>https://blog.youkuaiyun.com/lclfeng/article/details/106462765</guid><author>lclfeng</author><pubDate>Sun, 31 May 2020 23:39:18 +0800</pubDate><description><![CDATA[代码
代码解释
初始化
执行：0
与链表的其他题目类似，为了防止删除头结点的极端情况发生，先创建空结点dummy（newHead），使dummy指向传入的head结点。

第一次循环：
执行代码：1—while条件不满足，不执行
执行代码：2.2—newListNode指向oldListNode（虚线框）
执行代码：3—oldListNode从虚线框的位置到下一个位置，得到下图

第二次循环跟第一次一样，得到下图

第三次循环
执行代码：1—while条件满足，执行while中的代码，跳出while后，nu]]></description><category></category></item><item><title><![CDATA[Android Manifest的permission和uses-permission的区别和使用]]></title><link>https://blog.youkuaiyun.com/lclfeng/article/details/106313676</link><guid>https://blog.youkuaiyun.com/lclfeng/article/details/106313676</guid><author>lclfeng</author><pubDate>Sun, 24 May 2020 13:57:09 +0800</pubDate><description><![CDATA[背景
最近项目中出现一个问题，Android permission被重复定义。最后定位出是一个同事在使用定义好的权限的地方写成**&lt;permission&gt;**，带着这个问题来看看&lt;permission&gt;和 &lt;uses-permission&gt;
一句话总结（重点）
简单来讲:
&lt;permission&gt;：用来声明/定义一个权限，即声明权限的时候使用&lt;permission&gt;
&lt;uses-permission&gt;：你的应用向声明权限的应用请求/申请]]></description><category></category></item><item><title><![CDATA[Python爬虫如何获取重定向后的url]]></title><link>https://blog.youkuaiyun.com/lclfeng/article/details/88647616</link><guid>https://blog.youkuaiyun.com/lclfeng/article/details/88647616</guid><author>lclfeng</author><pubDate>Mon, 18 Mar 2019 19:11:10 +0800</pubDate><description><![CDATA[在Python爬虫中会遇到url被重定向的情况，比如我点击https://www.test.com/uiehwuhuhgrehgureg.htm跳转到另一个页面，另一个页面的url会变成https://www.test.com/test.htm

使用下面代码可以获取到重定向后的url



import requests


def get_redirect_url():
    ...]]></description><category></category></item></channel></rss>