http://safalsoft.com/dabao/923/

这样可以充分的节省程序消费的时间

  我们今天要讲多历程和协程,先说说多历程和协程的益处,它能够最大的操纵你cpu的资本和收集带宽,如许能够充实的节流法式消费的时间。在出产消费者模式中引入多历程和协程之前我们先简单入手一个实例(供初学者能够看懂之后的代码):

  以上的代码是一段简单的多历程,我们能够看到运转后三个历程都在运转,因为我这里让历程1睡眠10s,历程1和历程0,2是相对独立的,这里1的睡眠不会影响到历程0和2的运转,我们能够看到他们照旧在节制台不竭的输出,如许,我们的多历程+消费者模式的雏形就出来了,此刻只需要把我们消费者的营业逻辑替代进去就能够了。这里多说一句,有时候我们会不清晰多历程和多线程的概念,这个能够这么理解,初学者怎样看懂代码历程消费的资本是一个大类,而线程消费的资本是从历程里面来的,一个线程死了会影响到其他线程,但多历程之间是相对独立的,一个历程死了不会影响其他历程运转,这就是为什么我会在这里利用多历程而不是多线程,当然,初学者怎样看懂代码对于多线程还有必然的优化,那就是协程,这个点我们会在出产消费者模式与python+redis实例使用(次高级篇)中引见到。

  消费者开启多历程,在消费者开启多历程的时候我们会碰到一个问题,就是多个历程同时去抢统一个资本的环境,这个时候我们能够选择加锁到资本,也就是redis会话队列上,当某个历程拿资本的时候redis会话队列加上锁,包管其他历程拿不到这个资本,当这个历程拿完资本后,释放锁,初学者怎样看懂代码让其他历程去抢占资本: