Java学了几个小时,这两天又被元编程搞死,准备粗粗写一些我的理解。后面还有协程需要理解。感觉年底之前搞定这些有点累。 先上参考文献:https://www.liaoxuefeng.com/wiki/1016959663602400/1017592449371072 https://stackove ...
分类:
其他好文 时间:
2019-12-02 23:56:19
阅读次数:
262
golang和swoole区别 开发效率 Go语言是本质上是静态语言,开发效率稍差,但性能更强,更适合底层软件的开发 Swoole使用PHP语言,动态脚本语言,开发效率最佳,更适合应用软件的开发 IO模型 go语言使用单线程eventloop处理IO事件,多线程实现协程调度,执行用户层代码 swoo ...
分类:
其他好文 时间:
2019-12-02 23:45:40
阅读次数:
125
一、使用场景 大背景是从kafka 中读取oplog进行增量处理,但是当我想发一条命令将这个增量过程阻塞,然后开始进行一次全量同步之后,在开始继续增量。 所以需要对多个协程进行控制。 二、使用知识 1. 从一个未初始化的管道读会阻塞 2.从一个关闭的管道读不会阻塞 利用两个管道和select 进行控 ...
分类:
其他好文 时间:
2019-12-01 17:16:19
阅读次数:
147
假设我们现在有这么一个需求: 计算1-200之间各个数的阶乘,并将每个结果保存在mao中,最终显示出来,要求使用goroutime。 分析: (1)使用goroutime完成,效率高,但是会出现并发/并行安全问题; (2)不同协程之间如何通信; 对于(1):不同协程之间可能同时对一块内存进行操作,导 ...
分类:
其他好文 时间:
2019-11-28 21:27:36
阅读次数:
108
yield return null; // 下一帧再执行后续代码yield return 6;//(任意数字) 下一帧再执行后续代码yield break; //直接结束该协程的后续操作yield return asyncOperation;//等异步操作结束后再执行后续代码yield return ...
分类:
编程语言 时间:
2019-11-27 23:39:16
阅读次数:
240
Coroutines 协程 最近在总结Kotlin的一些东西, 发现协程这块确实不容易说清楚. 之前的那篇就写得不好, 所以决定重写. 反复研究了官网文档和各种教程博客, 本篇内容是最基础也最主要的内容, 力求小白也能看懂并理解. Coroutines概念 Coroutines(协程), 计算机程序 ...
分类:
其他好文 时间:
2019-11-22 13:51:10
阅读次数:
60
目录 迭代器 生成器 协程-yield 协程-greenlet 协程-gevent 进程、线程、协程区别 一、迭代器 迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 1.可迭代对象 我们已经 ...
分类:
其他好文 时间:
2019-11-21 23:08:59
阅读次数:
96
Gevent官网文档地址:http://www.gevent.org/contents.html 进程、线程、协程区分 我们通常所说的协程Coroutine其实是corporate routine的缩写,直接翻译为协同的例程,一般我们都简称为协程。 在linux系统中,线程就是轻量级的进程,而我们通 ...
分类:
其他好文 时间:
2019-11-20 23:31:04
阅读次数:
91
我们在上一章将生成器的时候最后写了,在Python2中生成器还扮演了一个重要的角色——实现Python的协程。那什么是协程呢? 协程 协程是实现并发编程的一种方式。提到并发,肯很多人都会想到多线程/多进程模型,这就是解决并发问题的经典模型之一。在最初的互联网世界中,多线程/多进程就在服务器并发中起到 ...
分类:
编程语言 时间:
2019-11-20 15:32:10
阅读次数:
72
[TOC] 协程基础 底层实现 协程的底层是使用greenlet模块来实现的 介绍 当遇到IO操作时将程序切换到其他函数继续执行会提高CPU的利用效率 一个线程可以开启500个协程 更适用于网络操作中 安装 应用 协程实现 协程爬虫 协程实现socket并发 server client ...
分类:
编程语言 时间:
2019-11-17 23:41:40
阅读次数:
94