多线程对同一串口读写 怎么解决?
大家好 最近在搞socket 通信 有一个问题是 有两个线程同时对一个串口进行读写操作 但是这样很容易出错
请问又没有办法 协调这两个线程
PS :在网上查到资料 可以建立一个消息队列 然后 有专门的线程进行读写串口 但是不知道 消息队列是什么形式的 数组还是还是自己定义的 ?两个线程怎么同时往一个消息队列中写数据呢? 谢谢了啊
------解决方案--------------------
用信号灯。
tutorial:
http://tutorials.jenkov.com/java-concurrency/semaphores.html
------解决方案--------------------
职责切分下,线程主体负责生成需要写的完整数据包,注意是完整的;
然后把负责将完整数据包写入Socket的那个函数,做成static,然后前面加上synchronized就完事了。