两者解决的问题相似,都是在解决一个线程中的高并发问题 IO多路复用: I:input(输入的意思) O:output(输出的意思) 先用一个例子来引出IO多路复用 setblocking 两个概念: 非阻塞:不等待 异步:执行完某个任务后自动调用我给他的函数 爬取多个网站的并发解决如果现在要求要爬取 ...
分类:
其他好文 时间:
2018-09-13 18:28:53
阅读次数:
203
协同程序由协程调度程序运行,并且绑定到用于启动协程的MonoBehaviour。StartCoroutine是MonoBehaviour的实例成员。 不得使用“new”创建所有组件。始终需要使用AddComponent创建组件。组件只能在GameObjects上“活动”。 错误初始化的组件(即使用“ ...
分类:
其他好文 时间:
2018-09-12 20:14:09
阅读次数:
190
一、进程池与线程池 实现并发的手段有两种,多线程和多进程。注:并发是指多个任务看起来是同时运行的。主要是切换+保存状态。 当我们需要执行的并发任务大于cpu的核数时,我们需要知道一个操作系统不能无限的开启进程和线程,通常有几个核就开几个进程,如果进程开启过多,就无法充分利用cpu多核的优势,效率反而 ...
分类:
编程语言 时间:
2018-09-11 01:09:36
阅读次数:
321
runtime.Gosched(),让出时间片,让其他协程先执行 runtime.Goexit(),终止当前协程的执行 如果我将test中的return换成runtime.Goexit() 首先打印aaa,然后执行test(),打印ccc,当遇见runtime.Goexit(),表示所在的协程就退出 ...
分类:
其他好文 时间:
2018-09-11 00:57:04
阅读次数:
189
提交任务的两种方式: 同步调用:提交完一个任务之后,就在原地等待,等待任务完完整整地运行完毕拿到结果后,再执行下一行代码,会导致任务是串行执行的 异步调用:提交完一个任务之后,不在原地等待,而是直接执行下一行代码,会导致任务是并发执行的p.shutdown(wait=True)关闭进程池的入口,并且 ...
分类:
编程语言 时间:
2018-09-10 21:20:40
阅读次数:
189
协程介绍 协程:是单线程下的并发,又称微线程,纤程。协程是一种用户态的轻量级线程,即线程是由用户程序自己控制调度的。 需要强调的是: 对比操作系统控制线程的切换,用户在单线程内控制线程的切换 优点如下: 1. 线程的切换开销更小,属于线程级别的切换,操作系统完全感知不到,因而更加轻量级2. 单线程内 ...
分类:
编程语言 时间:
2018-09-10 21:19:32
阅读次数:
239
一、进程池与线程池 调用concurrent.futures下的ThreadPoolExecutor,ProcessPoolExecutor来实现 提交任务有两种方式:同步调用:提交完一个任务之后,就在原地等待,等待任务完完整整地运行完毕拿到结果后,在执行下一段代码,是串行的 异步调用:提交完一个任 ...
分类:
编程语言 时间:
2018-09-10 20:36:21
阅读次数:
213
一、进程池与线程池 基本使用: 进程池和线程池操作一样 提交任务的两种方式: 同步调用:提交完一个任务之后,就在原地等待,等待任务完完整整地运行完毕拿到结果后,再执行下一行代码,会导致任务是串行执行的 异步调用:提交完一个任务之后,不在原地等待,结果???,而是直接执行下一行代码,会导致任务是并发执 ...
分类:
编程语言 时间:
2018-09-10 19:48:15
阅读次数:
277
导入进程池线程池模块@@ from concurrent import ProcessPoolExecutor,ThreadPoolExecutor 同步提交,异步提交@@ from concurrent import ProcessPoolExecutor,ThreadPoolExecutorim ...
分类:
编程语言 时间:
2018-09-10 19:45:37
阅读次数:
190