2

Python多线程记忆,有可能吗?如果是这样,怎么做?

4

1 回答 1

2

当然有可能。事实上,我认为直接的单线程实现应该可以正常工作,假设在并行调用相同函数并使用相同参数的情况下可能会执行一些冗余计算是可以接受的。

为了说明该场景,您的记忆过程可能如下所示:

if args not in cache:
    cache[args] = func(args)
return cache[args]

如果两个线程同时使用相同的 到达该点args,它们可能都func(args)并行调用,而只调用一个计算实例并让另一个实例等待第一个计算完成会更有效。这对您来说可能不是太大的问题。如果是这样,使用锁(来自threading模块)来阻塞具有匹配参数的线程的解决方案应该非常简单。

于 2011-01-17T10:17:37.260 回答