当前位置:   article > 正文

multiprocess模块使用进程池调用apply_async()提交的函数及回调函数不执行问题_apply_async里面的变量传递不到外面

apply_async里面的变量传递不到外面


使用multiprocesss模块遇到各种各样的问题,这次遇到的问题是调用进程池对象的 apply_async() 方法,往进程池传递一个实例方法(该实例方法里有一段代码是往同步队列里放入数据),然后发现往进程池扔的任务(即实例方法)不会被执行,回调方法也不执行。心塞~


以下是出现问题的代码

import ctypes
import datetime
import random

import time

from multiprocessing import Queue
from multiprocessing.pool import Pool

from multiprocessing import Value


class entry(object):
    def __init__(self, s: str, queue: Queue):
        self.s = s
        self.queue = queue
        # self.counter = c_uint

    def cutString(self):
        index = random.randint(0, len(self.s) - 4)
        time.sleep(1)
        i = random.randint(0, 2)
        print("randint(0, 2) = {}".format(i))
        return self.s[index:index + 2]

    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/151527
推荐阅读
相关标签
  

闽ICP备14008679号