Linux 编程:用C或者C++实现producer-consumer问题具体:1.main函数创建producer和consumer两个线程;2.producer从文件读取数据,每个数据包假定是188字节,放到数据队列;3.consumer从数据队列读取数据,作简

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/29 13:41:05
Linux 编程:用C或者C++实现producer-consumer问题具体:1.main函数创建producer和consumer两个线程;2.producer从文件读取数据,每个数据包假定是188字节,放到数据队列;3.consumer从数据队列读取数据,作简
xSMSP+u3֙nvՙ.\ 3. !RG01c{ɪ7y!]tt]˹{y~_eot+^$agm=:\:Eݹ,ArH,HaP,v҃tLcR꤆tt͍צL`y 5v,.&!^ft~{."s)致S~!Vr}t{Ձ1>x o 7~A T|}>~Rj_r >N`h<_g zQBFVl ɴzWdIA+Oad{B d1HBh / aٟѡP2(,W);-F?A0M :%}Lj0 ґ)L_w2Αu7sVG`9vV%X+BP]֥fSƸ@_Ƹ8($X(B"#5YcdZ7hvbՌBnrYJ4Ӓع-ZY8J,#c+T;F#HҌ]GXXÊOɆ7j=!`-MGYL|us/!+&oD s')}85{#ow"zΩ]Pc8܁7д2nn&4Y /C

Linux 编程:用C或者C++实现producer-consumer问题具体:1.main函数创建producer和consumer两个线程;2.producer从文件读取数据,每个数据包假定是188字节,放到数据队列;3.consumer从数据队列读取数据,作简
Linux 编程:用C或者C++实现producer-consumer问题
具体:
1.main函数创建producer和consumer两个线程;
2.producer从文件读取数据,每个数据包假定是188字节,放到数据队列;
3.consumer从数据队列读取数据,作简单统计,第一个字节=0x47或!=0x47;
3.数据文件自己写个程序生成;
4.一旦文件EOF,数据队列也全部变空,打印统计:数据包总数、其中0x47打头的数据包个数、非0x47打头的数据包个数.然后程序退出.

Linux 编程:用C或者C++实现producer-consumer问题具体:1.main函数创建producer和consumer两个线程;2.producer从文件读取数据,每个数据包假定是188字节,放到数据队列;3.consumer从数据队列读取数据,作简
我这样想的,假设文件已经存在了啊
建二个线程,然后主线程挂起,等待子线程都结束了,打印结果,后退出,这个结果可以存在全局变量里.
数据队列也做成全局的,然后做个互斥锁,二个线程只能有一个线程进行队列的操作.
另外,做个全局变量标置位,如果从文件中读取了所有的内容后,将这个标志位置上,后此线程退出,这时候等consumer读取完所有的数据队列后,此线程即可退出.当然,这个不用标志位也可以用信号方式实现.
大体就这样了.我觉得我这思路应该可以实现上面的要求,当然,不一定是最好的-_-!