python3.4.3 多进程之间结果变量的传递问题,程序无任何结果输出

python3.4.3 多进程之间结果变量的传递问题,程序无任何结果输出,第1张

多进程间共享的变量要使用特殊的数据结构,在multiprocessing包里有提供,常用的有Queue, Value, Array等,这里比较适合用Queue

修改后的程序如下,注意Result赋值,和ProcessCheck的参数

另外,Result要排序后输出的话,要用循环从Queue取值构建list再排序,这里省略了

import datetime

import sys

import time

import multiprocessing

PartStart = []       #每个process计算的起点

PartEnd = []         #每个process计算的终点

Result =  multiprocessingQueue()      #所有结果存储在Result数组中

ProcessCount = 10          #进程数 

EndNum = 9999999           #计算范围,默认100开始,终止数可以任意修改,大于100即可

print('Start:%s' %datetimedatetimenow()strftime("%Y/%d/%m %H:%M:%S"))

start=timetime()

d=int(((EndNum-99)/ProcessCount)+05)

for i in range(ProcessCount):

    PartStartappend(100+id)

    PartEndappend(PartStart[i]+d-1)

PartEnd[ProcessCount-1]=EndNum

#==========================================

#这段代码只是计算每个process的计算起点和终点

def CheckNum(Number):

    tmp=str(Number)

    len_num=len(tmp)

    sum_num = 0

    for i in range(len_num):

        sum_num=sum_num+(int(tmp[i])len_num)

    if sum_num==int(Number):

        return True

        #print(Number,"是水仙花数")

    else:

        return False

        #print(Number,"不是水仙花数")

def ProcessCheck(Start,End, Result):

    for j in range(int(Start),int(End)+1):      

        if CheckNum(j):

            #print(j,"是水仙花数")

            print("hello world")

            Resultput(str(j)+"是水仙花数")

#============================================

#这段代码用于计算某数值区间内的水仙花数,并存储进result数组中,也是每个process运行的代码

def main():

    threads=[]

    for i in range(ProcessCount):

        p=multiprocessingProcess(target=ProcessCheck, args=(PartStart[i],PartEnd[i], Result))

        threadsappend(p)

    for i in range(ProcessCount):

        threads[i]start()

    for i in range(ProcessCount):

        threads[i]join()

    #Resultsort(key=lambda t:t[0])

    for i in range(Resultqsize()):

        print(Resultget())

    #将最后的结果排序输出,但没有任何结果出现

    end = timetime()

    input('End:%s' %datetimedatetimenow()strftime("%Y/%d/%m %H:%M:%S")+"\n"+"共耗时:"+str(end-start))

    #这个input没有任何意义,主要是防止程序直接结束退出

if __name__ == '__main__':

    main()

1、两个页面之间传值,例如点击A页面跳转到B页面,把A页面的变量传到B页面。

2、第一种方法在button上绑定一个点击函数,代码:<button bindtap='tz'>我是A页面</button>。

2、在对应的js文件里面写上跳转代码,并携带参数ID=3。

3、点击一下A页面的button,在B页面就可以收到值了,B页面的options里面是要接收的值。

4、第二种方法就是直接跳转,携带参数直接写在里面。

以上就是关于python3.4.3 多进程之间结果变量的传递问题,程序无任何结果输出全部的内容,包括:python3.4.3 多进程之间结果变量的传递问题,程序无任何结果输出、微信小程序怎么把变量传到另一个页面、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9609280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存