WEB开发网
开发学院软件开发Python 使用 Python 进行线程编程 阅读

使用 Python 进行线程编程

 2008-09-30 12:46:16 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 引言对于 Python 来说,并不缺少并发选项,使用 Python 进行线程编程,其标准库中包括了对线程、进程和异步 I/O 的支持,在许多情况下,因为本文中的许多示例都将使用 Python 语言的新特性,而这些特性仅出现于 Python2.5 之后,通过创建诸如异步、线程和子进程之类

本文示例源代码或素材下载

引言

对于 Python 来说,并不缺少并发选项,其标准库中包括了对线程、进程和异步 I/O 的支持。在许多情况下,通过创建诸如异步、线程和子进程之类的高层模块,Python 简化了各种并发方法的使用。除了标准库之外,还有一些第三方的解决方案,例如 Twisted、Stackless 和进程模块。本文重点关注于使用 Python 的线程,并使用了一些实际的示例进行说明。虽然有许多很好的联机资源详细说明了线程 API,但本文尝试提供一些实际的示例,以说明一些常见的线程使用模式。

首先弄清进程和线程之间的区别,这一点是非常重要的。线程与进程的不同之处在于,它们共享状态、内存和资源。对于线程来说,这个简单的区别既是它的优势,又是它的缺点。一方面,线程是轻量级的,并且相互之间易于通信,但另一方面,它们也带来了包括死锁、争用条件和高复杂性在内的各种问题。幸运的是,由于 GIL 和队列模块,与采用其他的语言相比,采用 Python 语言在线程实现的复杂性上要低得多。

使用 Python 线程

要继续学习本文中的内容,我假定您已经安装了 Python 2.5 或者更高版本,因为本文中的许多示例都将使用 Python 语言的新特性,而这些特性仅出现于 Python2.5 之后。要开始使用 Python 语言的线程,我们将从简单的 "Hello World" 示例开始:

hello_threads_example

    
    import threading
    import datetime
    
    class ThreadClass(threading.Thread):
     def run(self):
      now = datetime.datetime.now()
      print "%s says Hello World at time: %s" %
      (self.getName(), now)
    
    for i in range(2):
     t = ThreadClass()
     t.start()

1 2 3 4 5 6  下一页

Tags:使用 Python 进行

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接