上一页 1 ··· 62 63 64 65 66 67 68 69 70 ··· 73 下一页
摘要: 协程: 1.协程,又称微线程,纤程。英文名Coroutine。 2.协程是跑在线程内的单线程,串行没有锁。 3.协程是一种用户态的轻量级线程。 4.协程CPU是访问不到的,协程是用户自己控制的。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先 阅读全文
posted @ 2018-01-04 17:36 kevin.Xiang 阅读(220) 评论(0) 推荐(0)
摘要: 进程池: 每一个进程在启动一个子进程时都会克隆一分数据,并开启额外一份内存空间,如果多次开启子进程,对内存的开销比较大,这里可以通过进程池来控制进程的最大个数,来解决。 进程池中有两个方法: apply #串行 apply_async #并行 回调callback: 可以启动10台机器批量进行数据库 阅读全文
posted @ 2018-01-04 17:25 kevin.Xiang 阅读(368) 评论(0) 推荐(0)
摘要: 进程间通信:进程之间必须需要中间件。 进程间通信:进程之间必须需要中间件。 不同进程间内存是不共享的,要想实现两个进程间的数据交换 Queues:实现传输两个进程的数据 线程queue,访问数据只能在一个进程内进行线程与线程之间的访问。 进程queue,可以作为一个中间键来实现两个进程的数据交互,q 阅读全文
posted @ 2018-01-03 18:29 kevin.Xiang 阅读(1174) 评论(0) 推荐(0)
摘要: 需求: 在有多线程的情况下,我们可以使用线程帮我们处理一些事情,但是在python这里 由于RSA锁的缘故,我们只能够用到一个cpu帮我们处理事情,一个cpu在处理多个线程时,是通过上下文的切换使我们产生幻觉,感觉他同时在处理多个线程,但是在这里cpu在进行上下问的切换也是要消耗cpu。cpu是处理 阅读全文
posted @ 2018-01-03 18:15 kevin.Xiang 阅读(245) 评论(0) 推荐(0)
摘要: 作用: 作用: 解耦:使程序直接实现松耦合,修改一个函数,不会有串联关系。 提高处理效率:FIFO = 现进先出,LIFO = 后入先出。 队列: 队列可以并发的派多个线程,对排列的线程处理,并切每个需要处理线程只需要将请求的数据放入队列容器的内存中,线程不需要等待,当排列完毕处理完数据后,线程在准 阅读全文
posted @ 2018-01-03 18:04 kevin.Xiang 阅读(10584) 评论(0) 推荐(1)
摘要: Events不同线程之间同步对象 参数说明: # 实例化event对象 event = threading.Event() # 等待检测标志位被设定,标志位设置后就不阻塞了 # 客户机线程可以等待设置标志 event.wait() # 设置一个全局变量标志位True event.set() # 清空 阅读全文
posted @ 2018-01-02 19:58 kevin.Xiang 阅读(630) 评论(0) 推荐(0)
摘要: Semaphore信号量的使用 Semaphore信号量的使用 信号量: 互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去。 使用场景: mysql连接池,线程池。可以在同一 阅读全文
posted @ 2018-01-02 19:47 kevin.Xiang 阅读(1859) 评论(0) 推荐(0)
摘要: 互斥锁Mutex的使用 互斥锁Mutex的使用 多个线程处理共享数据,数据会出现问题: 2.7之前每100指令切换一次GIL锁,线程就会sleep,线程会把前100条处理指令存放在CPU缓存内,切换GIL锁后放入另外一个线程再次处理同一条共享数据,如果我这条共享数据需要101条指令才能处理完,那么这 阅读全文
posted @ 2018-01-02 19:37 kevin.Xiang 阅读(6490) 评论(0) 推荐(0)
摘要: 递归锁: 递归锁: 互斥锁如果嵌套了多个锁之后,会将自己锁死永远都出不来了。 这个时候可以使用递归锁,它相当于一个字典,记录了锁的门与锁的对应值,当开门的时候会根据对应来开锁。 import threading # run1第二道锁 def run1(): print("grab the first 阅读全文
posted @ 2018-01-02 19:28 kevin.Xiang 阅读(1533) 评论(1) 推荐(1)
摘要: GIL全局解释器锁:为了解决多线程修改同一块数据。 GIL全局解释器锁:为了解决多线程修改同一块数据。 python的线程是调用操作系统的源生线程,启动时就是调用C语言的C源生接口,python调用C语言接口的线程去执行任务时,必须上下文对应关系传给CPU处理。 CPU处理python: 通过上下文 阅读全文
posted @ 2018-01-02 19:23 kevin.Xiang 阅读(397) 评论(0) 推荐(0)
上一页 1 ··· 62 63 64 65 66 67 68 69 70 ··· 73 下一页