2011-10-13 64 views
0

我的任务是在C线程同步,任何人都可以给我算法?

写一个加密程序

有一个源文件和目标file.My程序 需要读取源文件的内容,进行加密和 写加密的内容到目标文件。

我的程序有7个线程。

三个线程读取源文件由一条线一条线,并把文件 的内容到一个共享缓冲器1,一个线程从共享缓冲器1读内容,加密它 并投入共享缓冲器2,和另外三个线程从共享缓冲区2读取加密内容 并将其写入目标文件。

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

+0

这是功课吗? – GWW

+2

@Gww - 如果不是,这是一个非常愚蠢的做法! –

+0

@MartinBeckett:我一次只想着 – GWW

回答

0

关于互斥,共享内存和多线程通信在boost示例中有很好的例子,here

本示例使用共享内存来存储来自一个步骤的消息,另一个读取它们,从而阻止共享内存的并发访问。你可以申请你的线程。

+0

我可以在哪里申请我的线程?另外,确实支持C吗? – sehe

+0

不在C中,但您可以学习它,以便您可以在C程序中使用这些概念。 –

相关问题