您现在的位置是:主页 > news > 旅游网站开发说明书/郑州网络推广
旅游网站开发说明书/郑州网络推广
admin2025/6/6 8:09:45【news】
简介旅游网站开发说明书,郑州网络推广,绿色企业网站,蓬莱专业做网站公司Thread 进程class threading.Thread(groupNone, targetNone, nameNone, args(), kwargs{}, *, daemonNone)group 应该为 Nonetarget 是用于 run() 方法调用的可调用对象, 默认是 Nonename 是线程名称, 默认情况下由 "Thread-N" 格式构成一个唯一的名称, 其中 N 是小的…
Thread 进程
class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
group 应该为 None
target 是用于 run() 方法调用的可调用对象, 默认是 None
name 是线程名称, 默认情况下由 "Thread-N" 格式构成一个唯一的名称, 其中 N 是小的十进制数
args 是用于调用目标函数的参数元组, 默认是 ()。
kwargs 是用于调用目标函数的关键字参数字典, 默认是 {}
start() 开始线程活动, 在一个线程里最多只能被调用一次, 如果同一个线程对象中调用这个方法的次数大于一次, 会抛出 RuntimeError
run() 代表线程活动的方法, 可以在子类型里重载这个方法
join(timeout=None) 阻塞直到线程终结, 该阻塞调用这个方法的线程, 直到被调用 join() 的线程终结
is_alive() 返回线程是否存活
函数调用
#!/bin/env python
#-*- coding:utf-8 -*-
import os
import time
from threading import Thread
def worker_thread(num):
time.sleep(1)
print ('ID: {}'.format(num))
workers = []
for n in range(8):
workers.append(Thread(target=worker_thread, args=(n,)))
for worker in workers:
worker.setDaemon(False)
worker.start()
worker.join(0)
类调用
#!/bin/env python
#-*- coding:utf-8 -*-
import os
import time
from threading import Thread
class WorkerThread(Thread):
def __init__(self, num):
super(WorkerThread, self).__init__()
self.num = num
def run(self):
time.sleep(1)
print ('ID: {}'.format(self.num))
workers = []
for n in range(8):
workers.append(WorkerThread(n))
for worker in workers:
worker.setDaemon(False)
worker.start()
worker.join(0)
linux shell 流式调用
#!/bin/env python
#-*- coding:utf-8 -*-
import os
import sys
import time
import Queue
import threading
THREAD_NUM = 5
QUEUE_MAX_NUM = 50
def worker_thread(q):
thread_name = threading.current_thread().getName()
while True:
if q.empty():
time.sleep(1e-5)
continue
data = q.get()
if data == 'end':
break
# TODO
workers = []
q = Queue.Queue(QUEUE_MAX_NUM)
for n in range(THREAD_NUM):
workers.append(threading.Thread(target=worker_thread, args=(q,)))
for worker in workers:
worker.setDaemon(False)
worker.start()
for line in sys.stdin:
while q.full():
time.sleep(1e-5)
q.put(line.strip())
for _ in range(THREAD_NUM):
q.put('end')