Python如何实现多线程编程?

2026-05-24 17:221阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计632个文字,预计阅读时间需要3分钟。

Python如何实现多线程编程?

Python 提供了两个模块来实现多线程:thread 和 threading。threading 模块对 thread 模块进行了补充,提供了更完善的线程管理功能。以下是一个简单的例子:

pythonimport threading

def thread_function(name): print(fThread {name}: starting) # 模拟一些工作 time.sleep(2) print(fThread {name}: finishing)

创建线程thread1=threading.Thread(target=thread_function, args=(1,))thread2=threading.Thread(target=thread_function, args=(2,))

启动线程thread1.start()thread2.start()

等待线程完成thread1.join()thread2.join()

print(All threads finished.)

python提供了两个模块来实现多线程thread和threading,thread有一些缺点,在threading得到了弥补。

先看一个例子:

#coding=utf-8
import threading
from time import ctime,sleep


def music(func):
for i in range(2):
print "I was listening to %s. %s" %(func,ctime())
sleep(1)

def move(func):
for i in range(2):
print "I was at the %s! %s" %(func,ctime())
sleep(5)

threads = []
t1 = threading.Thread(target=music,args=(u'爱情买卖',))
threads.append(t1)
t2 = threading.Thread(target=move,args=(u'阿凡达',))
threads.append(t2)

if __name__ == '__main__':
for t in threads:
t.setDaemon(True)
t.start()

print "all over %s" %ctime()



1、构造方法:
Thread(group=None, target=None, name=None, args=(), kwargs={})
  group: 线程组,目前还没有实现,库引用中提示必须是None;
  target: 要执行的方法;
  name: 线程名;
  args/kwargs: 要传入方法的参数。


2、实例方法:
  isAlive(): 返回线程是否在运行。正在运行指启动后、终止前。
  get/setName(name): 获取/设置线程名。
  start(): 线程准备就绪,等待CPU调度
  is/setDaemon(bool): 获取/设置是后台线程(默认前台线程(False))。(在start之前设置)
    如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,主线程和后台线程均停止
  如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台线程也执行完成后,程序停止
  start(): 启动线程。
  join([timeout]): 阻塞当前上下文环境的线程,直到调用此方法的线程终止或到达指定的timeout(可选参数)。




Python如何实现多线程编程?

本文共计632个文字,预计阅读时间需要3分钟。

Python如何实现多线程编程?

Python 提供了两个模块来实现多线程:thread 和 threading。threading 模块对 thread 模块进行了补充,提供了更完善的线程管理功能。以下是一个简单的例子:

pythonimport threading

def thread_function(name): print(fThread {name}: starting) # 模拟一些工作 time.sleep(2) print(fThread {name}: finishing)

创建线程thread1=threading.Thread(target=thread_function, args=(1,))thread2=threading.Thread(target=thread_function, args=(2,))

启动线程thread1.start()thread2.start()

等待线程完成thread1.join()thread2.join()

print(All threads finished.)

python提供了两个模块来实现多线程thread和threading,thread有一些缺点,在threading得到了弥补。

先看一个例子:

#coding=utf-8
import threading
from time import ctime,sleep


def music(func):
for i in range(2):
print "I was listening to %s. %s" %(func,ctime())
sleep(1)

def move(func):
for i in range(2):
print "I was at the %s! %s" %(func,ctime())
sleep(5)

threads = []
t1 = threading.Thread(target=music,args=(u'爱情买卖',))
threads.append(t1)
t2 = threading.Thread(target=move,args=(u'阿凡达',))
threads.append(t2)

if __name__ == '__main__':
for t in threads:
t.setDaemon(True)
t.start()

print "all over %s" %ctime()



1、构造方法:
Thread(group=None, target=None, name=None, args=(), kwargs={})
  group: 线程组,目前还没有实现,库引用中提示必须是None;
  target: 要执行的方法;
  name: 线程名;
  args/kwargs: 要传入方法的参数。


2、实例方法:
  isAlive(): 返回线程是否在运行。正在运行指启动后、终止前。
  get/setName(name): 获取/设置线程名。
  start(): 线程准备就绪,等待CPU调度
  is/setDaemon(bool): 获取/设置是后台线程(默认前台线程(False))。(在start之前设置)
    如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,主线程和后台线程均停止
  如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台线程也执行完成后,程序停止
  start(): 启动线程。
  join([timeout]): 阻塞当前上下文环境的线程,直到调用此方法的线程终止或到达指定的timeout(可选参数)。




Python如何实现多线程编程?