recieve 线程收到消息后,转给另外一个线程B进行处理,B会打开一个文件,
并将消息内容写入文件,然后关闭文件。现在因为频繁写,出现了open file error问题。
2018/04/26 10:28:44.222 I ThreadB Process message: src= 5
2018/04/26 10:28:44.223 I ThreadB Process message: src= 0
2018/04/26 10:28:44.482 I ThreadB Process message: src= 1
2018/04/26 10:28:44.482 E ThreadB Error Opening ** file: C:\writting.txt
2018/04/26 10:28:44.482 I ThreadB Process message: src= 2
2018/04/26 10:28:44.482 E ThreadB Error Opening ** file: C:\writting.txt
2018/04/26 10:28:44.482 I ThreadB Process message: src= 3
2018/04/26 10:28:44.482 E ThreadB Error Opening ** file: C:\writting.txt
从log可以看到从src 0和5发来的message,可以正确处理,并更新文件,但是从src 1/2/3发来的消息,会在同一时间发起fopen操作,然后报error,请问大牛,在同一个线程中,为什么会出现这种情况呢?
code结构很老,没有看到用message queue或者同步的处理,基于这种现象,求解释。
谢谢