理解 Python 协程
这两天因为一点个人原因写了点好久没碰的python,其中涉及到协程编程,上次搞的时候,它还是web框架tornado特有的feature,现在已经有async await 关键字支持了。思考了一下其实现,回顾了下这些年的演变,觉得还有点意思。 都是单线程,为什么原来低效率的代码用了async await加一些异步库就变…
php数组化操作对象
需要实现ArrayAccess接口中的4个方法: class FakeArray implements ArrayAccess { private $elements; public function __construct() { $this->elements = []; } /** * isset 触发 * @param $of…
Swoole进程模型
Swoole进程模型 首先,我们需要了解一下Swoole的进程模型。Swoole是一个多进程模式的框架(可以类比Nginx的进程模型),当启动一个Swoole应用时,一共会创建2 + n + m个进程,其中n为Worker进程数,m为TaskWorker进程数,2为一个Master进程和一个Manager进程,它们之间的关系如下图所示。 其中,Ma…
《祖鲁法则》找出A股市场中的大牛股
祖鲁法则1:成长股的特点 祖鲁法则的本义是指1879年大英帝国与南非祖鲁王国爆发祖鲁战争。祖鲁族的士兵仅用传统冷兵器竟让拥有船坚炮利的英军大败而回。最后英军以损失1700人的代价才打赢祖鲁战争。祖鲁族所采取的战术即被称为祖鲁法则。后来这套打仗的方法被应用于投资市场,意思就是说,应该缩小范围,集中优势兵力,在你最熟悉的领域中赚到钱。  作者是吉姆斯莱…
php数据结构与算法
php实现双向队列 class Deque{ private $queue = []; public function addFirst($item) { return array_unshift($this->queue,$item); } public function addLast($item) { return array_…
php迭代器用法
<?php // 使对象可以像数组一样进行foreach循环 (Iterator迭代器) class Test implements Iterator { private $arr = []; // 索引游标 private $_key = 0; public function __construct(array $arr) { $t…
嵌套集合示例
// 保存评论 public function saveComment($data) { Db::startTrans(); try{ //计算嵌套循环 $query = self::withTrashed()->order('rgt','desc'); $parent_id = $data['parent_id'] ?? 0; if…
Github 简明教程
什么是 Github? github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。 Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。 目前…
Redis 分布式锁使用不当,酿成一个重大事故,超卖了100瓶飞天茅台!!!
本篇文章主要是基于我们实际项目中因为redis分布式锁造成的事故分析及解决方案。我们项目中的抢购订单采用的是分布式锁来解决的,有一次,运营做了一个飞天茅台的抢购活动,库存100瓶,但是却超卖了100瓶!要知道,这个地球上飞天茅台的稀缺性啊!!!事故定为P0级重大事故...只能坦然接受。整个项目组被扣绩效了~~事故发生后,CTO指名点姓让我带头冲锋来…