2012年(3)
发布时间:2012-12-11 10:32:52
编写多线程编程面临的一个最具挑战性的问题就是如何让一个线程和另一个线程协同工作,避免出现竞争条件(race condition)和数据破坏(data corruption)。为了使应用程序中的多个线程协同工作,线程需要根据应用需求在某些特定情况下进行必要的互斥和同步。 下面的代码是读写操作的最小化模型,简单的阐述如下: 利用设计的系统是ARM使用一个线程从FPGA中读取数据,在另一个线程从FPGA中将数据转发给其他模块,就可以利用两个信号量完成两个线程之间的同步. 需要注意的是: 在实际的操作中有时需要对接收数据进行一系列的处理和拼接,注意不满足条件时信号量的释放,否则程序就会 ......【阅读全文】