C 线程安全队列实现
在我的应用程序中,我有两个线程加上主线程 一个线程是在中断发生时从I/O模块获取数据(4096字节到缓冲区)。另一个线程是使用这些数据(处理和格式化数据并将其写入文件) 实现这一目标的最佳方法是什么 我不能从生产者线程中丢失数据,这会以很快的速度发生 任何我能研究的例子都将不胜感激 我正在尝试实现线程安全队列,但遇到了困难 很抱歉,我忘了包括平台和其他信息。C 线程安全队列实现,c,multithreading,C,Multithreading,在我的应用程序中,我有两个线程加上主线程 一个线程是在中断发生时从I/O模块获取数据(4096字节到缓冲区)。另一个线程是使用这些数据(处理和格式化数据并将其写入文件) 实现这一目标的最佳方法是什么 我不能从生产者线程中丢失数据,这会以很快的速度发生 任何我能研究的例子都将不胜感激 我正在尝试实现线程安全队列,但遇到了困难 很抱歉,我忘了包括平台和其他信息。 我使用的是windows xp(32位)和Microsoft visual studio 5.0编译器 我将假设您在POSIX平台上 使用
我使用的是windows xp(32位)和Microsoft visual studio 5.0编译器 我将假设您在POSIX平台上 使用 然后,消费者可以在生产者失明的情况下偷取食物
很抱歉,这将取决于您计划针对的操作系统/平台。据我所知,C不提供标准的线程原语。(最接近它的东西可能是pthreads,但不是在每个平台上都可用。)好的,c11提供了线程,但支持是间歇性的:-)是的,您使用的是什么平台/体系结构/编译器?这被称为“生产者-消费者问题”。在web上搜索它应该会为您提供许多不同的算法来解决这个问题,并为常用的编程语言和平台提供许多实现。如果您希望每边都有一个线程,那么环形缓冲区将是最简单的解决方案。较新的Linux发行版为您提供了方便的解决方案。只要您需要多个线程来访问任意一方,您就必须开始处理锁和同步。@fork0-Oops。更正了帖子。