通过不同的并发运行的posix线程提供和读取动态增长的结构数组是可取的还是可能的?我在哪里必须寻找那种应用的最佳实践 - 有没有“常识”?我是这个领域的新手,需要一些初步的指示,以便从哪里开始和注意什么。看来这里有很多可能,我不想为初学者陷阱而堕落。
答案 0 :(得分:2)
要获得“普通智慧”的好消息,请查看Improving Performance through Threads。
虽然文章从明显的东西开始,但它对线程设计模式有很好的描述。
另外,请务必阅读Concurrent Data Structures,以便了解如何安排数据存储。
答案 1 :(得分:2)
听起来你正在描述一个线程安全的堆栈或队列。对“线程安全”一词进行网络搜索可能会让您入门。
通常,使用互斥锁保护阵列:默认情况下,互斥锁处于解锁状态,当线程访问(修改或读取)结构时,它首先锁定互斥锁,进行修改并解锁互斥锁。如果另一个线程需要在互斥锁被锁定时访问数据结构,它将阻塞,直到锁定互斥锁的线程解锁它。