串口传输用不用使用多线程 为什么

如题所述

主要是两个原因:
1、串口的通讯速率相对电脑来说是很慢的(最高110K,以太网都千兆了)。正常情况下,在等待下一个串口信号的间隙,操作系统已经完成了时间片轮转。多以不需要多线程。
2、标准串口是独占资源,所以除非是多个串口同时操作,在单串口上实现多线程运作效率会更低。因为必须在切换线程时考虑到释放独占资源,程序的复杂度也会呈几何级数上升,完全得不偿失。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-12
异步串口可以不用,同步阻塞方式必须用,否则调用readfile writefile会阻塞线程,窗口就卡死了。。。
单线程用异步串口可以,但并不好,异步方式,窗口界面一般你还需要用个定时器,定时来查询通讯是否完成,何必这么麻烦,实时性又差。。。。
如果想实时性好一些,最好是阻塞方式,因为这样只要通讯完成,马上就退出阻塞,你就可以继续了,单独的线程又不干别的,阻塞也就阻了,主线程是有其他事情要做,窗口的所有操作都是主线程的事,如果阻塞了,窗口就死了。。。。
如果你用串口控件的话,也可以不用创建线程(控件替你创建好了),这就简单的多。。。。本回答被网友采纳
第2个回答  2014-02-09
除非你是计算机上同时存在多个串口需要操作(比如使用了多串口卡或者USB转串口集线器),可以考虑开多线程,否则没有必要。
第3个回答  2014-02-09
需要,不然会阻塞其它处理,比如界面渲染。
相似回答