import os
import multiprocessing
def copy_file(q,file_name, old_folder_name, new_folder_name):
"""完成檔案的複製"""
old_f = open(old_folder_name+"/"+file_name, "rb")
content = old_f.read()
old_f.close()
new_f = open(new_folder_name+"/"+file_name, "wb")
new_f.write(content)
new_f.close()
# print("從%s--->到%s 複製檔案%s成功!" % (old_folder_name, new_folder_name, file_name))
q.put(file_name)
def main():
# 1.獲取使用者要copy的資料夾名稱
old_folder_name = input("請輸入要copy的資料夾:")
# 2.建立乙個新的資料夾
try:
new_folder_name = old_folder_name + "復件"
os.mkdir(new_folder_name)
except:
pass
# 3.獲取所有待copy的檔名稱 listdir()
file_names = os.listdir(old_folder_name)
print(file_names)
# 4.建立程序池
po = multiprocessing.pool(2)
# 5.建立乙個佇列
beueorsv q = multiprocessing.manager().queue()
# 6.向程序池中新增copy檔案的任務
for file_name in file_names:
po.apply_async(copy_file, args=(q,file_name, old_folder_name, new_folder_name))
po.close()
# po.join()
all_file_nubeueorsvm = len(file_names) # 統計所有的檔案個數
copy_ok_num = 0
while true:
www.cppcns.comfile_name = q.get()
# print("已經完成copy :%s" % file_name)
copy_ok_num += 1
print("\r複製的進度為:%.2f %%" % (copy_ok_num*100/all_file_num),end='')
if copy_ok_num >= all_file_num:
break
if __name__ == '__main__':
main()
python多工 執行緒
併發 指的是任務數多餘cpu核數,通過作業系統的各種任務排程演算法,實現用多個任務 一起 執行 實際上總有一些任務不在執行,因為切換任務的速度相當快,看上去一起執行而已 並行 指的是任務數小於等於cpu核數,即任務真的是一起執行的 執行緒python的thread模組是比較底層的模組,python的...
多工和多執行緒 1
建立乙個執行緒的api函式叫做createthread hthread createthread security attributee,dwstacksize,threadproc,pparam,dwflags,idthread 大部分的windows程式設計師都會傾向於使用c的執行時庫函式 be...
Shell 實現多執行緒(多工)
bin bash all num 10 a date h m s for num in seq1 do done b date h m s echo e starttime t a echo e endtime t b 在命令的末尾加 符號,則命令將在後台執行,這樣後面的命令不需要等待該命令執行完再...