线程同步,谁能给我算法?

时间:2011-10-13 04:59:46

标签: c multithreading unix

我的任务是用C语言编写加密程序。

有一个源文件和一个目标文件。我的程序 需要从源文件中读取内容,加密它们 将加密内容写入目标文件。

我的程序中有7个主题。

三个线程逐行读取源文件并放入文件的内容 在共享缓冲区1中,线程从共享缓冲区1读取内容,对其进行加密 并放入共享缓冲区2,另外三个线程读取加密内容 从共享缓冲区2中将其写入目标文件。

我的想法是创建两个mutices以确保只有一个线程可以读取 源文件或同时写入目标文件。我的问题是如何控制多个线程对共享缓冲区1,共享缓冲区2的访问。我知道它像生产者/消费者问题一样退出但更复杂。有人可以给我建议吗?提前致谢。

1 个答案:

答案 0 :(得分:0)

您在增强示例here中有一个关于互斥锁,共享内存和多线程通信的非常好的示例。

此示例使用共享内存来存储来自一个步骤的消息,另一个读取它们,阻止共享内存以进行并发访问。你可以申请你的主题。