进程,线程,协程 TODO 虚拟内存 局部性原理 计算机组成原理,CPU缓存和局部性原理 老调度器(Go 1.0)有4个缺点 https://golang.org/s/go11sched http://lessisbetter.site/2019/03/10/golang scheduler 1 h ...
分类:
其他好文 时间:
2020-03-08 15:44:43
阅读次数:
81
Golang 协程介绍 1. 用户态和内核态 内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。 用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。 1.1 为什么要有用户态和内核态 ...
分类:
其他好文 时间:
2020-03-08 13:54:43
阅读次数:
204
协程 究竟什么是协程? 究竟协程有什么用? 1.涉及到同步锁。 2.涉及到线程阻塞状态和可运行状态之间的切换。 3.涉及到线程上下文的切换。 以上涉及到的任何一点,都是非常耗费性能的操作。 next()函数用来创建一个协程嗷 yield会暂停,当send()的时候才会继续 python中使用asyn ...
分类:
编程语言 时间:
2020-03-06 23:42:08
阅读次数:
82
线程池&进程池 在python2中没有提供,在python3之后才提供 作用:保证程序中最多可以创建的线程的个数 import time from concurrent.futures import ThreadPoolExecutordef task(n1,n2): time.sleep(1) p ...
分类:
编程语言 时间:
2020-03-06 20:10:56
阅读次数:
71
协程: 使用一个线程来实现异步操作的。它相对于多线程执行效率高,不存在线程切换;此外协程不牵扯多线程中锁的机制,所以不必考虑加锁这些复杂操作。 协程是通过generator来实现的,就是yield关键字和send()函数的使用。 生成器的yield关键字: yield关键字可以将值(信息)返回,同时 ...
分类:
编程语言 时间:
2020-03-02 12:37:25
阅读次数:
81
协程的概念 线程:系统级别的 协程:程序根据自己的需求调度。在同一个线程内一段代码在执行过程中会中断然后跳转执行别的代码,接着在之前中断的地方继续开始执行。携程拥有自己的寄存器上下文和栈。协程的优点:1.无需线程上下文切换的开销,协程避免了无意义的调度,性能提高,程序员自己承担调用的责任。2.无需原 ...
分类:
其他好文 时间:
2020-03-01 12:53:41
阅读次数:
68
协程 1 生成器 初始化生成器函数 返回生成器对象,简称生成器 def gen(): for i in range(10): #yield 返回便能够保留状态 yield i mygen = gen() for i in mygen: print(i) 执行 [root@node10 python] ...
分类:
编程语言 时间:
2020-02-29 15:04:17
阅读次数:
83
用户线程和内核线程 现代操作系统中,实现线程库有两种方法:在用户空间中和在内核空间中。 用户线程 整个线程包的实现都在用户空间的话,就意味着操作系统内核对它一无所知,只知道他是一个普通的需要调度的进程。协程就是一种用户线程的实现,可以满足在一个内核线程上并发执行多个任务,coroutine和goro ...
分类:
编程语言 时间:
2020-02-26 21:07:52
阅读次数:
367
最近Python关于协程和元编程我实在看不下去了,就来补一下MySQL的坑,第二章关于基准测试的部分先放着,放到最后再说。 先说重点吧,3-6掌主要是讲优化的。我看了一遍只能说懵懂懵懂,就借着写blog的机会再次学习一下。 我们常遇到的三个性能相关的服务请求是:如何确认服务器是否达到了性能最佳状态, ...
分类:
数据库 时间:
2020-02-25 12:32:17
阅读次数:
71
先来欣赏一段有趣的漫画对话哦 ————— 第二天 ————— —————————————————— 什么事进程和线程 有一定基础的小伙伴们肯定都知道进程和线程。 进程是什么呢? 直白地讲,进程就是应用程序的启动实例。比如我们运行一个游戏,打开一个软件,就是开启了一个进程。 进程拥有代码和打开的文件资 ...
分类:
编程语言 时间:
2020-02-24 14:42:37
阅读次数:
76