【发布时间】:2009-11-02 12:18:28
【问题描述】:
由不同的并发运行的 posix 线程提供和读取动态增长的结构数组是否可取甚至可能?我必须在哪里寻找此类应用程序的最佳实践 - 有没有“常识”?我是这个领域的新手,需要一些初始指针来说明从哪里开始以及要注意什么。看来这里有很多可能,我不想掉入初学者的陷阱。
【问题讨论】:
标签: c concurrency pthreads dynamic-data
由不同的并发运行的 posix 线程提供和读取动态增长的结构数组是否可取甚至可能?我必须在哪里寻找此类应用程序的最佳实践 - 有没有“常识”?我是这个领域的新手,需要一些初始指针来说明从哪里开始以及要注意什么。看来这里有很多可能,我不想掉入初学者的陷阱。
【问题讨论】:
标签: c concurrency pthreads dynamic-data
如需“共同智慧”的良好来源,请查看Improving Performance through Threads。
虽然这篇文章从显而易见的东西开始,但它对线程设计模式的描述很好而且很简单。
还请务必阅读Concurrent Data Structures,它可以让您了解如何安排数据存储。
【讨论】:
听起来您在描述线程安全的堆栈或队列。对“线程安全”一词进行网络搜索可能会让您入门。
通常,您使用互斥锁保护您的数组:默认情况下互斥锁是解锁的,当线程访问(修改或读取)结构时,它首先锁定互斥锁,进行修改并解锁互斥锁。如果另一个线程在互斥锁被锁定时需要访问数据结构,它将阻塞,直到锁定互斥锁的线程将其解锁。
【讨论】: