普通网友 2021-02-19 18:13 采纳率: 0%
浏览 15

请教一个python的多线程问题

我直接把代码和需求放上来,很简短的,

麻烦大家帮我看下,如果要实现注释中的需求,代码该怎么改,

谢谢!

复制代码

#需求:我想把arr中的数字分别放在setA,setB中,A和B中的数字在多线程执行完后也不能相同

import random
import threading

class A:
    setA = set()
    setB = set()
    arr = [1, 2, 3, 4, 5,6,7,8,9,0]
    threads = []
    
    def fun(self, condition):
        with condition:
            condition.wait()
            for i in self.arr:
                r = random.randrange(1, 100)
                if (r % 2 == 0):
                    self.setA.add(i)
                elif(not i in self.setA):
                    self.setB.add(i)
            condition.notify()
    
    def tFun(self):
        condition = threading.Condition()
        for i in range(10):
            t = threading.Thread(target=self.fun, args=(condition,))
            self.threads.append(t)
            t.start()
        for t in self.threads:
            t.join()
        print(self.setA)
        print(self.setB)

    
a = A()
a.tFun()
  • 写回答

1条回答 默认 最新

  • 幻灰龙 2021-02-19 19:42
    关注

    你贴的代码和你的需求不匹配么?

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码