我见过用过这种模式,但我不记得用来描述它的术语(因此我不能谷歌它更多地了解它):什么是这种称为竞争条件的解决方案?
基本上,这就是你已经有了一个由多个线程使用的资源,但不是锁定对资源的访问,提交事务,然后解锁访问,资源具有自己的“队列”,并且每个进程“将”在该资源上执行的职能“发布”到它的队列。然后资源按照它发布的顺序执行并执行每个函数,确保它的状态永远不会被破坏。
我见过用过这种模式,但我不记得用来描述它的术语(因此我不能谷歌它更多地了解它):什么是这种称为竞争条件的解决方案?
基本上,这就是你已经有了一个由多个线程使用的资源,但不是锁定对资源的访问,提交事务,然后解锁访问,资源具有自己的“队列”,并且每个进程“将”在该资源上执行的职能“发布”到它的队列。然后资源按照它发布的顺序执行并执行每个函数,确保它的状态永远不会被破坏。
我认为这里可以使用的最具体的术语是演员。我觉得一个演员为“线”(或线状的过程)这是...
这样一个演员的实现经常是处理消息的同步队列的线程。
只是调用这个“同步”是正确的,但不具体。
听起来只不过是异步和延迟执行。不知道该模式是否有名称。也不确定它是否与竞争条件本身有关(因为它只是同步对单个资源的访问,但跨多个资源的访问似乎不受管制 - 并且与之前描述的事务锁定相比,其可预测性更低)。 – Thilo 2012-02-20 08:36:58
这是一个非常常见的模式,这是COM公寓线程如何工作的。所以,任意地,“公寓线程”是一个标签。基础数据结构是“生产者/消费者队列”。 COM中的消息队列。 – 2012-02-20 12:46:25
也许是交易记忆? :http://en.wikipedia.org/wiki/Software_transactional_memory – Ben 2012-02-20 15:44:17