Linux下多线程串口通信问题

我做的一个项目,把串口读写采用了一个独立的线程,进行数据的读写,在调试时,发现只要启动另外一个计算量比较大的线程,串口通信就出错了,而只要不启动这个线程,可以启动其他线程,串口工作没有任何问题,求原因?

这两个线程有耦合吧?认真分析一下之间的联系。可能是共用相同的数据等造成的。
如果有共用数据,一般做法:
假设int comBuf[200];
在计算线程要先把comBuf的数据复制给另一个数组,再计算。
避免在计算时串口通讯将数据更新了。

是不是线程抢占了太多CPU等,导致串口线程读取数据超时或失败