Python3 多线程

python3 多线程

 

python 支持多线程编程。线程(thread)是操作系统能够进行运算调度的最小单位。它包含在进程之中,是进程中的实际调度单位。

一个进程中可以并发多个线程,每条线程并行执行不同的任务。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

 

线程分类

  • 内核线程:由操作系统内核创建和撤销。
  • 用户线程:不需要内核支持而在用户程序中实现的线程。

 

python3 线程中常用的两个模块

  • _thread
  • threading(推荐使用)

thread 模块已被废弃。用户可以使用 threading 模块代替。所以,在 python3 中不能再使用"thread" 模块。为了兼容性,python3 将 thread 重命名为 "_thread"。


开始学习python线程

python中使用线程有两种方式:函数或者用类来包装线程对象。

函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程。语法如下:

_thread.start_new_thread ( function, args[, kwargs] )

参数说明:

  • function - 线程函数。
  • args - 传递给线程函数的参数,他必须是个tuple类型。
  • kwargs - 可选参数。

范例

#!/usr/bin/python3

import _thread
import time

# 为线程定义一个函数
def print_time( threadname, delay):
   count = 0
   while count < 5:
      time.sleep(delay)
      count += 1
      print ("%s: %s" % ( threadname, time.ctime(time.time()) ))

# 创建两个线程
try:
   _thread.start_new_thread( print_time, ("thread-1", 2, ) )
   _thread.start_new_thread( print_time, ("thread-2", 4, ) )
except:
   print ("error: 无法启动线程")

while 1:
   pass
相关文章