<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wjwei1213的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wjwei1213</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wjwei1213]]></copyright><item><title><![CDATA[linux常用命令记录]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/163142436</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/163142436</guid><author>wjwei1213</author><pubDate>Thu, 23 Jul 2026 21:48:53 +0800</pubDate><description><![CDATA[查看文件系统的硬盘挂载节点和磁盘空间的使用情况查看目录文件的大小，-h: 转为K、M单位，max-depth: 展示文件的深度。]]></description><category></category></item><item><title><![CDATA[C语言实现ping]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/135274512</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/135274512</guid><author>wjwei1213</author><pubDate>Thu, 28 Dec 2023 17:20:31 +0800</pubDate><description><![CDATA[C语音 ping检测网络通不通]]></description><category></category></item><item><title><![CDATA[Android工程Flutter模块踩坑：]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/135273738</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/135273738</guid><author>wjwei1213</author><pubDate>Thu, 28 Dec 2023 16:57:21 +0800</pubDate><description><![CDATA[Flutter踩坑、持续更新]]></description><category></category></item><item><title><![CDATA[mmap简单示例]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/128306969</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/128306969</guid><author>wjwei1213</author><pubDate>Tue, 13 Dec 2022 19:58:28 +0800</pubDate><description><![CDATA[Android Bind通信机制底层实现之mmap]]></description><category></category></item><item><title><![CDATA[bat批处理 安装apk]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/128225630</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/128225630</guid><author>wjwei1213</author><pubDate>Wed, 07 Dec 2022 19:31:45 +0800</pubDate><description><![CDATA[bat批处理 安装apk.]]></description><category></category></item><item><title><![CDATA[CAS本身所具有的问题以及解决方法]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/123537534</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/123537534</guid><author>wjwei1213</author><pubDate>Wed, 16 Mar 2022 22:36:37 +0800</pubDate><description><![CDATA[CAS：全称：Compare And Swap（比较并且交换），用来解决多线程情况下锁带来的性能问题。过程就是拿旧值（O）和内存值（M）做比较，如果相等的话，用新值（N）覆盖内存值（M），如果不相等，就循环比较，直到相等为止。



那么CAS本身存在什么问题呢？

1、ABA问题：

线程A把内存值改为N后，又再次改回M ， 如果线程B（业务处理比较慢）此时去比对，发现内存值还是M，就会感觉自己的旧值O相等，线程B会以为内存值没有被改动过。解决这个问题可以使用版本戳的方式。

2、CPU开销：

线程B会]]></description><category></category></item><item><title><![CDATA[synchronized和volatile]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/123513596</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/123513596</guid><author>wjwei1213</author><pubDate>Tue, 15 Mar 2022 21:55:59 +0800</pubDate><description><![CDATA[synchronized：保证原子性

volatile：保证可见行
]]></description><category></category></item><item><title><![CDATA[理解抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/114729988</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/114729988</guid><author>wjwei1213</author><pubDate>Sat, 13 Mar 2021 09:52:41 +0800</pubDate><description><![CDATA[示意图：



代码示例：https://download.youkuaiyun.com/download/wjwei1213/15760766


]]></description><category></category></item><item><title><![CDATA[kotlin之DSL基础]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/114499732</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/114499732</guid><author>wjwei1213</author><pubDate>Sun, 07 Mar 2021 21:45:22 +0800</pubDate><description><![CDATA[fun main() {
    val person = person{
        name="jim"
        age=30
        address {
            city="苏州"
            street="城南街道"
            number=21
        }
    }

    println(person)
}

fun person(block:Person.()-&gt;Unit):Person{
    return.]]></description><category></category></item><item><title><![CDATA[JVM内存结构以及作用介绍]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/114481499</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/114481499</guid><author>wjwei1213</author><pubDate>Sun, 07 Mar 2021 14:29:03 +0800</pubDate><description><![CDATA[&lt;div class="article_content" style="overflow: hidden; height: 2436px;"&gt;
            &lt;div id="content_views" class="htmledit_views clearfix"&gt;
            &lt;link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/d...]]></description><category></category></item><item><title><![CDATA[lock和synchronized区别]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/114247641</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/114247641</guid><author>wjwei1213</author><pubDate>Mon, 01 Mar 2021 07:59:18 +0800</pubDate><description><![CDATA[1、lock是一个接口，而synchronized是java的一个关键字
2、异常是否释放锁：
synchronized在发生异常时候会自动释放占有的锁，因此不会出现死锁；而lock发生异常时候，不会主动释放占有的锁，必须手动unlock来释放锁，可能引起死锁的发生。（所以最好将同步代码块用try catch包起来，finally中写入unlock，避免死锁的发生。）
3、是否知道获取锁
Lock可以通过trylock来知道有没有获取锁，而synchronized不能；
4、synchronized和loc]]></description><category></category></item><item><title><![CDATA[APP启动的流程图]]></title><link>https://blog.youkuaiyun.com/wjwei1213/article/details/114178358</link><guid>https://blog.youkuaiyun.com/wjwei1213/article/details/114178358</guid><author>wjwei1213</author><pubDate>Sat, 27 Feb 2021 16:16:16 +0800</pubDate><description><![CDATA[点击桌面APP图标之后，APP启动的流程图：




]]></description><category></category></item></channel></rss>