代码改变世界

Swoole 协程的并发调用及使用示例

2020-07-15 17:19 by 小伍2013, 3103 阅读, 2 推荐, 收藏, 编辑
摘要:示例一: 利用通道pop会自动挂起当前协程,等待生产者推送数据的特性,实现并发调用,并在协程完成后组合结果集。 $serv = new Swoole\Http\Server("127.0.0.1", 9503, SWOOLE_BASE); $serv->on('request', function 阅读全文

Swoole 中使用通道(Channel)实现协程间通讯(消息队列)

2020-07-12 17:58 by 小伍2013, 1387 阅读, 0 推荐, 收藏, 编辑
摘要:通道 Coroutine\Channel 使用本地内存,不同的进程之间内存是隔离的。 只能在同一进程的不同协程内进行 push 和 pop 操作。 Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]); Co\run(function(){ // 设置一个容量为1的通道 阅读全文

Swoole 协程性能测试

2020-07-11 16:22 by 小伍2013, 587 阅读, 0 推荐, 收藏, 编辑
摘要:// 开启协程化,文件操作,sleep,Mysqli,PDO,streams等都变成异步IO Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]); $s = microtime(true); // 创建协程容器 Co\run(function() { // 开启100 阅读全文

Swoole 协程使用示例及协程优先级

2020-07-09 19:08 by 小伍2013, 751 阅读, 0 推荐, 收藏, 编辑
摘要:示例一: Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]); Co\run(function () { go(function() { var_dump(file_get_contents("http://www.baidu.com/")); }); go(func 阅读全文

Swoole 协程简介

2020-07-08 15:45 by 小伍2013, 892 阅读, 0 推荐, 收藏, 编辑
摘要:什么是协程 协程可以简单理解为线程,只不过这个线程是用户态的,不需要操作系统参与,创建、销毁和切换的成本都非常低。 协程不能利用多核 cpu,想利用多核 cpu 需要依赖 Swoole 的多进程模型。 什么是通道 通道(channel )是协程间的消息队列,多个协程通过 push 操作生产消息、通过 阅读全文

Laravel Redis分布式锁的使用

2020-07-08 15:01 by 小伍2013, 3561 阅读, 0 推荐, 收藏, 编辑
摘要:创建锁 use Illuminate\Support\Facades\Cache; $lock = Cache::lock('foo', 10); if ($lock->get()) { // 处理业务逻辑 sleep(3); $lock->release(); } 获取无限期锁并自动释放 get 阅读全文

Laravel Redis分布式锁实现源码分析

2020-07-03 18:09 by 小伍2013, 776 阅读, 0 推荐, 收藏, 编辑
摘要:首先是锁的抽象类,定义了继承的类必须实现加锁、释放锁、返回锁拥有者的方法。 namespace Illuminate\Cache; abstract class Lock implements LockContract { use InteractsWithTime; // 锁的名称 protect 阅读全文

Swoole 中使用异步任务

2020-07-01 16:11 by 小伍2013, 697 阅读, 0 推荐, 收藏, 编辑
摘要:执行异步任务 (Task) # server.php $serv = new Swoole\Server("127.0.0.1", 9501); // 设置异步任务的工作进程数量 $serv->set(array('task_worker_num' => 4)); $serv->on('Connec 阅读全文

深入 Laravel 内核之IOC容器

2020-07-01 15:39 by 小伍2013, 406 阅读, 0 推荐, 收藏, 编辑
摘要:升级工厂前的准备工作 无规矩不成方圆,随着越来越多的行为出现,我们需要需要定下一些规范。 为了约束每一个行为的规范,需要定义一个行为接口: interface BehaviorInterface { /** * 行为激活方法 * @param array $values 激活的参数 */ publi 阅读全文

深入 Laravel 内核之工厂模式

2020-06-30 15:44 by 小伍2013, 929 阅读, 0 推荐, 收藏, 编辑
摘要:英雄与行为,依赖的诞生 首先定义一个英雄,英雄具有一些行为: class Hero { protected $behavior = []; public function show() { var_dump($this->behavior); } } 然后定义一种名为攻击行为: class Atta 阅读全文
上一页 1 2 3 4 5 6 ··· 9 下一页