首页 > 代码库 > tornado.ioloop.IOLoop.instance().start()中实例详解

tornado.ioloop.IOLoop.instance().start()中实例详解

我们来分析一下tornado.ioloop.IOLoop.instance().start(),学习了tornado后,当启动服务的时候,我一直有一个疑惑,我们看一下源码,IOLoop类中instance()是一个单例模式返回IOLoop实例函数

    @staticmethod
    def instance():
        """Returns a global `IOLoop` instance.

        Most applications have a single, global `IOLoop` running on the
        main thread.  Use this method to get this instance from
        another thread.  To get the current thread‘s `IOLoop`, use `current()`.
        """
        if not hasattr(IOLoop, "_instance"):
            with IOLoop._instance_lock:
                if not hasattr(IOLoop, "_instance"):
                    # New instance after double check
                    IOLoop._instance = IOLoop()
        return IOLoop._instance
然后我们再看一下IOloop类的start()函数
    def start(self):
        """Starts the I/O loop.
        The loop will run until one of the callbacks calls `stop()`, which
        will make the loop stop after the current event iteration completes.
        """
       
        raise NotImplementedError()


本文出自 “lpj24” 博客,请务必保留此出处http://6167018.blog.51cto.com/6157018/1532899