【发布时间】:2012-04-10 20:19:12
【问题描述】:
我有一个多点触控应用程序。它有 3 个 ccv 应用程序向它发送 udp 数据包。创建的应用程序通过多线程的 ofxTuio 接收所有这些数据包。然后这些接触将进入我们在单个线程上编写的代码中。我们有显示对象。它们每个都有一个列表,其中包含指向它们包含的所有对象的指针。比如我们写过,onEnterFrame、addChild、removeChild;功能类似于您在 actionscript 中看到的显示列表语法。但是,由于多线程 tuio 事件,我们在对象列表上遇到了迭代错误(并发)问题。我们如何防止这种情况发生。似乎锁定(互斥锁)是不正确的,因为这些列表没有在多个线程上被访问。我为此列表创建了一个自定义队列,当对象被删除或添加到列表中时,它们从不迭代,其中包含几个布尔值和一些额外的排队列表。我怀疑人们遇到过这样的事情,什么是正确的做法?
【问题讨论】:
标签: c++ multithreading list concurrency locking