zoukankan      html  css  js  c++  java
  • pyhton多线程例子

    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # --------------------------------
    # Name GrapHan_pin
    # Author DELL
    # Date  2020/9/22
    # 多线程
    #多线程处理图谱数据,把图谱中所有节点都更新拼音编码属性
    # -------------------------------
    import pinyin
    from py2neo import Graph
    from threading import Thread
    import time
    import math
    import random
    
    class Grap_pinyin:
        def __init__(self):
            self.neo_graph = Graph(
                "http://192.168.3.150:7480",
                username="neo4j",
                password="root"
            )
    
    def getStrAllAplha(str):
            return pinyin.get_initial(str, delimiter="").upper()
    
    def getStrFirstAplha(str):
            str = getStrAllAplha(str)
            str = str[0:1]
            return str.upper()
    
    def processsGrep(neo_graph,df,data):
        for jj in data:
            try:
                query = 'match(d) where d.name=%r set d.拼音编码=%r ' % (jj, getStrAllAplha(jj))
                print(df, query)
                neo_graph.run(query)
            except Exception as e:
                print(e)
    
    
    def split_def():
        graph_object = Grap_pinyin()
        neo_graph = graph_object.neo_graph
        query = 'match(d) where d.拼音编码 is null return collect(distinct d.name) as data'
        data = neo_graph.run(query).data()[0]['data']
        thread_list = []
        # 每个线程处理的数据大小
        split_count = 20
        # 需要的线程个数
        times = math.ceil(len(data) / split_count)
        count = 0
        for item in range(times):
            _list = data[count:count+split_count]
            #线程相关处理
            thread = Thread(target=processsGrep,args=(neo_graph,item,_list))
            thread_list.append(thread)
            #在子线程中运行任务
            thread.start()
            count += split_count
        #线程同步,等待子线程运行结束,主线程再结束
        for _item in thread_list:
            _item.join()
    
    
    if __name__ == '__main__':
      
        split_def()
  • 相关阅读:
    Gamma阶段第三次scrum meeting
    【技术博客】Django+uginx+uwsgi框架的服务器部署
    Gamma阶段第二次scrum meeting
    Gamma阶段第一次scrum meeting
    团队项目贡献分
    Beta阶段发布说明
    Beta阶段测试报告
    【Beta阶段】第十次Scrum Meeting
    团队贡献分汇总
    [Gamma]Scrum Meeting#4
  • 原文地址:https://www.cnblogs.com/kwzblog/p/14101326.html
Copyright © 2011-2022 走看看