Python如何使用多线程的方法来重新排列数组?
2021-07-22 10:18:27
浏览数 (1765)
今天 W3Cschool 小编将为大家带来的是Python如何使用多线程的方法来重新排列数组,希望能对各位有所帮助。
假设有字符数组就像'XOOOXOX',我需要重新安排这个数组一样'XXXOOOO'。那么如何创建简单的python代码,使用多线程的方法来重新排列数组呢?
我就创建了一个虚拟的线程工作,这可能根本不会显示性能提高:
import random
import threading
a = random.choices(['X', 'O'], k=10000)
a = ''.join(a)
print(a.count('X'), a.count('O'))
thread_count = 4
lock = threading.Lock()
x_count = 0
o_count = 0
def chunk_it(seq, num):
avg = len(seq) / float(num)
out = []
last = 0.0
while last < len(seq):
out.append(seq[int(last):int(last + avg)])
last += avg
return out
def d(i):
global x_count
global o_count
data_part = chunk_it(a, thread_count)[i]
with lock:
x_count += data_part.count('X')
o_count += data_part.count('O')
ts = []
for i in range(thread_count):
t = threading.Thread(target=d, args=(i, ))
ts.append(t)
for t in ts:
t.start()
for t in ts:
t.join()
a = 'X' * x_count + 'O' * o_count
print(a)
print(a.count('X'), a.count('O'))
此演示旨在使用 Python 相对较低的线程 api 显示。蛇的并发性由几个模块领导threading
, multiprocessing
, concurrent.futures
, asyncio
等等。
Python如何使用多线程的方法来重新排列数组,就为大家介绍到这里了希望大家继续关注W3Cschool.