亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用分而治之的多線程?

如何使用分而治之的多線程?

慕容708150 2021-08-14 16:50:10
我是 Python 新手,一直在嘗試使用多線程。關于該主題的Stackoverflow已經存在深入的評論,但我仍然有一些問題。我的程序的目標是創建和填充一個數組(盡管我猜從技術上講它在 Python 中必須稱為“列表”)并通過“分而治之”算法對其進行排序。不幸的是,術語“列表”和“數組”似乎被許多用戶混為一談,即使它們并不相同。如果在我的評論中使用了“數組”,請記住,我已經發布了來自各種資源的不同代碼,并且為了尊重原作者,沒有更改其內容。我用于填充列表的代碼count非常簡單#!/usr/bin/env python3count = []i = 149while i >= 0:    count.append(i)    print(i)    i -= 1之后,我使用這個關于“分而治之”主題的非常方便的指南來創建兩個列表進行排序,稍后將它們合并。我現在主要關心的是如何通過多線程正確使用這些列表。在前面提到的帖子中,有人認為,基本上,使用多線程只需要幾行代碼:from multiprocessing.dummy import Pool as ThreadPool pool = ThreadPool(4)也results = pool.starmap(function, zip(list_a, list_b))傳遞多個列表。我試圖調整代碼但失敗了。我的函數的參數是def merge(count, l, m, r)(用于將列表count分成左右部分),兩個臨時創建的列表被稱為L和R。def merge(arr, l, m, r):     n1 = m - l + 1    n2 = r- m     # create temp arrays     L = [0] * (n1)     R = [0] * (n2) 但是每次我運行該程序時,它只會響應以下錯誤消息:Traceback (most recent call last):  File "./DaCcountdownTEST.py", line 71, in <module>    results = pool.starmap(merge,zip(L,R))NameError: name 'L' is not defined我不知道我的問題的原因。任何幫助是極大的贊賞!
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號