我正在处理一个生产者-消费者问题,其中消费者是无限制的。生产者可以随意将任务放入处理队列中。当队列为空时,消费者将阻塞线程。
while true {
do {
guard let job = try self.queue.dequeue() else { return }
job.perform()
} catch {
print(error)
}
}
通常我会将循环中的所有内容放入自动释放池中,但是在Linux上这个功能不可用。似乎ARC
从未释放循环中的对象。我该如何控制内存使用?