摘要:
协成(Gevent) 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。CPU只认识线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调 阅读全文
摘要:
进程: Python 解释器有一个全局解释器锁(PIL),导致每个 Python 进程中最多同时运行一个线程,因此 Python 多线程程序并不能改善程序性能,不能发挥多核系统的优势,可以通过这篇文章了解。 但是多进程程序不受此影响, Python 2.6 引入了 multiprocessing 来 阅读全文
摘要:
超过十年以上,没有比解释器全局锁(GIL)让Python新手和专家更有挫折感或者更有好奇心。 Python的底层 要理解GIL的含义,我们需要从Python的基础讲起。像C++这样的语言是编译型语言,所谓编译型语言,是指程序输入到编译器,编译器再根据语言的语法进行解析,然后翻译成语言独立的中间表示, 阅读全文
摘要:
线程 vs 进程 进程:一堆资源集的集合。线程:操作系统能够调度的最小单位。 进程和线程的谁快是误区,进程至少包含一个线程,是没有可比性的。 线程:共享内存,两个线程同时操作一个数据,要加锁。全局GIL lock解释性锁。Lock,加锁;RLock()递归锁,即嵌套锁。线程同时操作一份数据的时候加锁 阅读全文
摘要:
queue队列 Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递。一个线程放入数据,另外一个线程取数据。 class queue.Queue(maxsize=0) #先入先出 class 阅读全文