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
执行以上程序输出结果如下:
Thread-1: Wed Jan 5 17:38:08 2022 Thread-2: Wed Jan 5 17:38:10 2022 Thread-1: Wed Jan 5 17:38:10 2022 Thread-1: Wed Jan 5 17:38:12 2022 Thread-2: Wed Jan 5 17:38:14 2022 Thread-1: Wed Jan 5 17:38:14 2022 Thread-1: Wed Jan 5 17:38:16 2022 Thread-2: Wed Jan 5 17:38:18 2022 Thread-2: Wed Jan 5 17:38:22 2022 Thread-2: Wed Jan 5 17:38:26 2022
执行以上程后可以按下 ctrl-c 退出。
实现python双线程同时运行。
------稍加改动------
import _thread
import time
def test(threadName, delay):
while 1:
print(".")
#延迟时间1s
time.sleep(1)
# 为线程定义一个函数
def refresh( threadName, delay):
count = 0
while 1:
time.sleep(1)
count += 1
if(delay == count):
print('刷新界面')
count = 0
if __name__ == "__main__":
# 创建两个线程
try:
_thread.start_new_thread( refresh, ("Thread-1", 10 ) )
_thread.start_new_thread( test, ("Thread-2",0 ) )
except:
print ("Error: 无法启动线程")
while 1:
pass