我的博客: https://www.luozhiyun.com/archives/217 想要学好 OpenResty,你必须理解下面 8 个重点: 同步非阻塞的编程模式; 不同阶段的作用; LuaJIT 和 Lua 的不同之处; OpenResty API 和周边库; 协程和 cosocket; ...
分类:
其他好文 时间:
2020-02-06 00:58:41
阅读次数:
90
Go 通过协程实现并发,协程之间靠信道通信 1.1 并发、并行是什么? 并行其实很好理解,就是同时执行的意思,在某一时间点能够执行多个任务。 想达到并行效果,最简单的方式就是借助多线程或多进程,这样才可在同一时刻执行多个任务。单线程是永远无法达到并行状态的。例,"合作并行开发某个项目" 并发是在某一 ...
分类:
其他好文 时间:
2020-02-05 16:19:30
阅读次数:
75
协程 coroutine最近频繁的听说到 “协程” 这个词,花了一段时间肤浅的研究了一下。对于 “它是一个什么东西” 有了一个大概的了解。from wiki Coroutines are computer program components that generalize subroutines ... ...
分类:
其他好文 时间:
2020-02-05 09:29:33
阅读次数:
60
Go 协程是什么? Go 协程是与其他函数或方法一起并发运行的函数或方法。Go 协程可以看作是轻量级线程。与线程相比,创建一个 Go 协程的成本很小。因此在 Go 应用中,常常会看到有数以千计的 Go 协程并发地运行。 Go 协程相比于线程的优势 相比线程而言,Go 协程的成本极低。堆栈大小只有若干 ...
分类:
其他好文 时间:
2020-02-04 13:46:22
阅读次数:
43
多线程程序在单核上运行,就是并发 多线程程序在多核上运行,不是并行 Go协程和Go主线程 Go主线程(线程):一个Go线程上,可以起多个协程 ,你可以这样理解,协程是轻量级的线程 Go协程的特点: 1)有独立的栈空间 2)共享程序堆空间 3) 调度由用户控制 4)协程是轻量级的线程3 gorouti ...
分类:
其他好文 时间:
2020-02-04 00:54:45
阅读次数:
85
并发 IO 问题一直是服务器端编程中的技术难题,从最早的同步阻塞直接 Fork 进程,到 Worker 进程池/线程池,到现在的异步IO、协程。PHP 程序员因为有强大的 LAMP 框架,对这类底层方面的知识知之甚少,本文目的就是详细介绍 PHP 进行并发 IO 编程的各种尝试,最后再介绍 Swoo ...
分类:
Web程序 时间:
2020-02-01 16:20:58
阅读次数:
81
异步IO 所谓「异步 IO」,就是你发起一个 IO阻塞 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。 实现异步IO的方式 单线程+异步协程实现异步IO操作 异步协程用法 从 Python 3.4 开始,Python 中加入了协程的概念,但这个版本的协程还是以生成器对象为基础 ...
分类:
其他好文 时间:
2020-01-29 14:24:48
阅读次数:
70
1. 进程和线程 2. 并发和并行 3. 协程 package main import ( "fmt" "strconv" "time" ) func test() { for i := 1; i <= 10; i++ { fmt.Println("tesst,hello,world " + str ...
分类:
其他好文 时间:
2020-01-27 09:26:57
阅读次数:
98
为提高工作效率,让多个爬虫一起工作 需要使用的库是:gevent 方式一 1.使用队列的形式: from gevent import monkey # 从gevent库里导入monkey模块。 monkey.patch_all() # monkey.patch_all()能把程序变成协作式运行,就是 ...
分类:
其他好文 时间:
2020-01-26 23:51:48
阅读次数:
174
多线程 线程:实现多任务的另一种方式 一个进程中,也经常需要同时做多件事,就需要同时运行多个‘子任务’,这些子任务,就是线程 线程又被称为 轻量级进程 (lightweight process),是更小的执行单元 一个进程可拥有多个并行的(concurrent)线程,当中每一个线程,共享当前进程的资 ...
分类:
编程语言 时间:
2020-01-26 20:50:08
阅读次数:
82