首页 > 其他 > 详细

初识Twisted(一)

时间:2019-04-16 23:49:33      阅读:150      评论:0      收藏:0      [点我收藏+]

pip install Twisted

安装Twisted库

 

from twisted.internet import reactor

#开启事件循环
#不是简单的循环
#不会带来任何性能损失
reactor.run()

1. Twisted的reactor只有通过调用reactor.run()才启动。

2. reactor循环是在其开始的线程中运行,也就是运行在主线程中。

3. 一旦启动,reactor就会在程序的控制下(或者具体在一个启动它的线程的控制下)一直运行下去。

4. reactor空转时并不会消耗任何CPU的资

5. 并不需要显式的创建reactor,只需要引入就OK。

 

from twisted.internet import pollreactor

#将会使用poll而不是默认的select

pollreactor.install()

一般的写法:

from twited.internet import pollreactor

pollreactor.install()

from twisted.internet import reactor

eactor.run()

一个简单的demo

#一个简单的demo

from twisted.internet import reactor

def hello():
        print(hello from the reactor loop!)
        print(hhh)

reactor.callWhenRunning(hello)

print(start the reactor)

reactor.run()

 回调的重要特性:

1. 我们的代码与Twisted代码运行在同一个线程中。

2. 当我们的代码运行时,Twisted代码是处于暂停状态的。

3. 同样,当Twisted代码处于运行状态时,我们的代码处于暂停状态。

4. reactor事件循环会在我们的回调函数返回后恢复运

 

 

特别需要强调的是,我们应该尽量避免在回调函数中使用会阻塞I/O的函数。

from twisted.internet import reactor

class Countdown(object):

        counter = 5

        def count(self):
                if self.counter == 0:
                        #reactor停止
                        reactor.stop()
                else:
                        print(self.counter, ...)
                        self.counter -= 1
                        #注册回调函数
                        reactor.callLater(1, self.count)

#添加reactor将要执行的函数
reactor.callWhenRunning(Countdown().count)

#开始
print(start)
reactor.run()
#结束
print(stop)

 

初识Twisted(一)

原文:https://www.cnblogs.com/yangzixiong/p/10720798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!