import multiprocessing
import threading
import time #时间库
import tkinter as tk#导入图形界面库
class ceshi():
def __init__(self):
pass
def func(self,i,q,txinfo):
# lock.acquire()
# temp = num
# num = temp + 1
# num.value += 1 # 子进程改变数值的值,主进程跟着改变
if i<500:
q.put("失败")
txinfo.insert(tk.END, '失败')
elif 500<=i<999:
q.put("成功")
else:
t3 = time.time()
print("q的长度为:%d"%q.qsize())
t4 = time.time()
print("取q长度的时间为:",int(t4 - t3))
# print(i)
# print(num)
# lock.release()
if __name__ == "__main__":
# num = multiprocessing.Value("d", 10.0) # d表示数值,主进程与子进程共享这个value。(主进程与子进程都是用的同一个value)
# print(num)
# print(type(num))
window = tk.Tk()
window.title('荔子现金模板')
window.geometry('500x300')
txinfo = tk.Text(window, height=15, width=70)
txinfo.pack()
t1 = time.time() # 取系统时间
manager = multiprocessing.Manager()
q = manager.Queue()
num = 0
lock = threading.Lock()
pool = multiprocessing.Pool(5)
xxx=ceshi()
for i in range(1000):
pool.apply_async(xxx.func, args=(i,q,txinfo,)) # 函数名为main 参数为i = 每一行账号
#xxx.func(i,q,txinfo)
pool.close() # 关闭进程池,不再接受新的进程
pool.join() # 主进程阻塞等待子进程的退出 开启会导致界面卡死
t2 = time.time() # 取当前系统时间
print('多线程执行时间为:', int(t2 - t1))
# print(num.value)
window.mainloop()
pool.apply_async(xxx.func, args=(i,q,txinfo,)) 子进程不执行了 原因是加了txinfo 去掉txinfo又能执行 什么问题阿