2回答

0收藏

多线程中怎么保存变量?

问答交流 问答交流 2040 人阅读 | 2 人回复 | 2020-02-09

from multiprocessing import Process
import random
#定义一个列表-lis# 函数qw中有aa,ss,dd三个函数,分别计算将数字添加进lis列表# 想实现,在多线程中 让lis局部化,或者用别的方式,互动独立保存qw中计算结果# 现在是用多进程实现def qw(a):
    lis = []
    def aa(a):
        for i in range(10):
            s = random.uniform(2, 39)
            # print('s=',s)            # print('***'*30)            a+=s
            lis.append(a)
    def ss(a):
        for i in range(10):
            s = random.uniform(1, 19)
            # print('s2=', s)            # print('***' * 30)            a=a*s
            lis.append(a)
    def dd(a):
        for i in range(10):
            s = random.uniform(1, 59)
            # print('s3=', s)            # print('***' * 30)            a=a+a*s
            lis.append(a)
    aa(a)
    ss(a)
    dd(a)
    print(lis)
if __name__ == '__main__':
    for n in range(10):
        a=random.uniform(0,9)
        a=a+n
        p1 = Process(target=qw, args=(n,))
        p1.start()
我想实现,一个函数中里面三个函数使用一个变量,来保存数据,结果发现多线程中列表属于全局变量

只有使用多进程才可以达到效果,百思不得其解,那多线程这种情况怎么操作呢
分享到:
回复

使用道具 举报

回答|共 2 个

莫小应

发表于 2020-2-9 13:39:46 | 显示全部楼层

大哥,你这个好像是多进程吧,多线程不是threading吗
回复

使用道具 举报

aadd445aadda

发表于 2020-2-10 07:10:04 | 显示全部楼层

是啊,我这个就是多进程的,想看看怎么改
回复

使用道具 举报