国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python回調(diào)函數(shù)中使用多線程的方法

2020-02-16 11:17:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

下面的demo是根據(jù)需求寫(xiě)的簡(jiǎn)單測(cè)試腳本

#!/usr/bin/env python# coding: utf-8# 第一個(gè)列表為依賴組件和版本號(hào),后面緊跟負(fù)責(zé)人名稱# 接著出現(xiàn)第二個(gè)以來(lái)組建列表,負(fù)責(zé)人為空了# 所以根據(jù)需求需要對(duì)組件、版本號(hào)、負(fù)責(zé)人進(jìn)行不同處理# 這時(shí)在for循環(huán)中根據(jù)if判斷,寫(xiě)回調(diào)函數(shù)處理# 格式不一致數(shù)據(jù)的測(cè)試數(shù)據(jù)a = [[u'tool-1', u'1.9.13'], u'xiaowang', u'xiaoqu', [u'tool-2', u'1.9.23'], [u'tool-3', u'1.9.33'], [u'tool-4', u'1.9.43'], u'pi',[u'tool-5', u'1.9.53']]# a = [[u'tool-1', u'1.9.13'],u'xiaowang',[u'tool-2', u'1.9.23'],u'xiaowang', [u'tool-3', u'1.9.33'],u'xiaowang']# a = [[u'tool-1', u'1.9.13']]# [u'tool-1', u'1.9.13']your_pro = a[0]# print your_pro# [u'xiaowang', u'xiaoqu', [u'tool-2', u'1.9.23']]tmp = a[1:]# print tmpdef git_callback(whole_v, proj_value, name_value):  # 如果存在負(fù)責(zé)人存在  try:    if type(name_value[0]) is unicode:      # 對(duì)除去列表0個(gè)索引的數(shù)據(jù)(依賴名和版本號(hào))后面的數(shù)據(jù)進(jìn)行遍歷      for i in name_value:        # 碰到后面的數(shù)據(jù)是列表的進(jìn)行回調(diào)        if type(i) is list:          tmp_index = whole_v.index(i)+1          return git_callback(whole_v, whole_v[whole_v.index(i)], whole_v[tmp_index:])        else:          # 打印依賴、版本號(hào) 負(fù)責(zé)人 開(kāi)始          print proj_value+i.split()+['start']    else:      # 如果負(fù)責(zé)人后跟的組件這種格式的列表數(shù)據(jù)為空      # 也就是只有依賴和版本號(hào)列表數(shù)據(jù),負(fù)責(zé)人為空,就打印依賴版本號(hào)      ver = proj_value      owner = name_value      if type(owner[0]) is unicode:        return git_callback(whole_v, ver, owner)      else:        print ver        # 這里是為了判斷是不是到列表的最后一位        # 如果是最后一個(gè)值,且不是字符串的Unicode,而是列表        # 就直接打印出項(xiàng)目        if whole_v.index(owner[0]) == len(whole_v)-1:          # 打印最后一個(gè)值          print whole_v[-1:]        else:          # 這里比較繞,打印調(diào)試吧...          new_ver = whole_v[whole_v.index(ver)+1]          owner = whole_v[whole_v.index(ver)+2:]          return git_callback(whole_v, new_ver, owner)  except IndexError as e:    print proj_value    print egit_callback(a, your_pro, tmp)

demo的output:

Boom:git_response pirogue$ python test.py[u'tool-1', u'1.9.13', u'xiaowang', 'start'][u'tool-1', u'1.9.13', u'xiaoqu', 'start'][u'tool-2', u'1.9.23'][u'tool-3', u'1.9.33'][u'tool-4', u'1.9.43', u'pi', 'start'][u'tool-5', u'1.9.53']list index out of range

python的多線程

下面的代碼是從主程序中,摘取出來(lái)的代碼片段

from multiprocessing.dummy import Pool as ThreadPool# 判斷git查詢返回的依賴數(shù)據(jù)格式不唯一的回調(diào)def git_callback(whole_v, proj_value, name_value, git_cookie):  #   whole_v = whole_v  list_git = []  if name_value:    # print name_value    for i in name_value:      # print i      if i:        if type(i) is list:          tmp_index = whole_v.index(i)+1          return git_callback(whole_v, whole_v[whole_v.index(i)], whole_v[tmp_index:], git_cookie)        else:          git_cookie = str(git_cookie.split()[0])+' '+str(git_cookie.split()[1])          list_git.append(tuple(git_cookie.split("?")+i.split()))          print list_git          pool = ThreadPool(100)          result = pool.map(pool_git, list_git)          print result          pool.close()          pool.join()            else:    print proj_value            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 根河市| 靖边县| 绍兴市| 和硕县| 留坝县| 新营市| 资兴市| 静宁县| 民乐县| 长寿区| 冷水江市| 扎赉特旗| 五常市| 壤塘县| 甘肃省| 盐亭县| 疏附县| 连城县| 迁西县| 龙里县| 南岸区| 嵊州市| 陕西省| 陈巴尔虎旗| 鹰潭市| 措勤县| 太仆寺旗| 恩平市| 丹巴县| 博野县| 泉州市| 河池市| 普兰县| 宕昌县| 兴文县| 烟台市| 白河县| 游戏| 集安市| 通许县| 安乡县|