Quarkay's Blog

非淡泊无以明志 非宁静无以致远

Swoole 源码分析2 - 线程锁的封装

Swoole 中对于线程锁的封装位于 'src/lock' 目录,很明了地实现了互斥锁、读写锁、自旋锁三种,结构非常简单。

✍ Quarkay , 2022-10-15 , 1647 Views 0 Comments

Swoole 源码分析1 - 协程的上下文切换

协程的核心就是上下文切换,故以此为 Swoole 源码分析的开篇。Swoole 与 Fiber 都采用了 boost 库中协程上下文切换( context switch )的实现代码,在这一点上三者完全相同。

✍ Quarkay , 2022-09-23 , 1880 Views 0 Comments

PHP 中的协程实现

老早以前就想写这篇文章了,奈何一直觉得自己对 PHP 内核源码和协程概念了解的都还不够透彻,加之 PHP 世界确实比较少谈论包括协程在内的并发解决方案,所以一直搁置。今天把拖延症治疗一下,顺便再立个 flag : 后续陆续写一系列 PHP 源码分析、 Opcache / Swoole 等扩展源码分析的文章,作为学习笔记,加油!

✍ Quarkay , 2022-09-16 , 3991 Views 6 Comments

使用 Clion + NDK 来编译和调试 Android 可执行二进制文件

刚好最近有需要编写安卓端的可执行二进制文件,以便在安卓端直接通过 shell 调用执行。官方推荐使用 Android Studio 进行开发,但是个人感觉再装一个 IDE 很麻烦,其次我不清楚 Android Studio 除了用来做 jnilibs ,能不能编译和调试二进制文件。(碰巧看到这里又知道情况的朋友可以留言告诉我一下,感谢!)所以我研究了一下怎么直接用 Clion 来编写并通过 adb 远程调试。

✍ Quarkay , 2022-05-01 , 7386 Views 6 Comments

把 Linux man pages 做成 docset 塞进 Zeal / Dash ( man7.org 在线版 )

每次查 Linux API ,要么用 man 要么 google 查在线版进去看,其中在线版使用 man7.org 最多,排版护眼排名也最靠前。但如果使用 Zeal 的话一定会更快,且离线版本没有网络的时候也能查。 Zeal 可以认为是开源简化版 Dash ,后者是 Mac 专属付费应用,但两者离线文档格式都是 docset 。

✍ Quarkay , 2021-11-09 , 3719 Views 0 Comments

Go 语言中的时间解析与时间格式化(完全指南)「译」

还记得刚开始看 Go 语言官方 time 标准库文档,翻看时间处理模块的时候,有点摸不着头脑。尤其是时间解析、时间格式化,因为全文比较长,得页面搜索 format 、 parse 之类的关键字查看。

✍ Quarkay , 2021-06-30 , 11326 Views 0 Comments

开启 OCSP Stapling 加速 IOS 和 MacOS 平台 let’s Encrypt https 证书校验

前段时间遇到了一个问题,采用 Let’s Encrypt 证书部署 https 的网站,唯独在 IOS 平台访问极慢,会卡个三五秒空白页。通过查询发现,有人遇到过一样的问题,原因是 IOS 平台会在用户通过 https 协议访问网站时,实时校验证书状态(据称 MacOS 也会,博主手上没有设备)。

✍ Quarkay , 2021-06-18 , 3754 Views 0 Comments

Go 语言学习中遇到的一些疑惑点

在学习和使用 Go 语言的过程中,遇到了一些需要注意下的疑惑点,依次记录一下。这些疑惑点,大都与 Go 语言的内存组织方式有关,理解之后其实也很自然,写博客的时候反倒疑惑开始学习时为啥感到疑惑了...

✍ Quarkay , 2019-12-17 , 3917 Views 0 Comments

Go 语言的声明语法「译」

Go 语言的声明语法比较“别致”,博主学习的时候看到官方的“安利”博文感觉写的很好也很有意思,能帮助理解其规律,以避免在遇到 Go 语言的复杂声明的时候犯错,顺道翻译了一下。

✍ Quarkay , 2019-10-20 , 3964 Views 1 Comments