def render(self, scene, bucket_order_info: BucketOrderInfo, multiThread: bool=True): self.scene = scene sample_list = [Sample(self.main_sampler, scene)] my_bucket_orders = BucketOrder.create(bucket_order_info.width, bucket_order_info.height, bucket_order_info.bucket_order_type) # 1) Init a Thread pool with the desired number of threads pool = ThreadPool(1) # 2) Add the task to the queue task_index = 0 for i in range(bucket_order_info.width * bucket_order_info.height): pool.add_task(self.render_task, task_index, my_bucket_orders.buckets_orders[task_index], bucket_order_info, sample_list, random.random() * 255) task_index += 1 # 3) Wait for completion pool.wait_completion()