Linux,通过串口实现线程对数据实现收发,为什么只能写线程,而读线程运行不了?

Linux,通过串口实现线程对数据实现收发,为什么只能写线程,而读线程运行不了?,第1张

另一个线程完全可以运行,是否运行决定权在你。 如果另一个线程需要等待串口的数据,那么它应该调用wait来等待信号量 读取串口数据的线程应该在读取完成后通知等待在信号量上的线程,以继续运行。

要满足这三个条件:

1,单开线程自动写at

2,单开线程读at

3,打开文件读配置,将读出来后的配置文件放到log文件里去。

这边记录下如何在ui下开一个线程的过程:用一个handler变量调用handler.post函数,然后在runnable里面重写run接口就可以,实际上,这样调用出来的线程跟ui主线程是一个线程,不会创建新的。所以这边如果要用线程创建的话,必须

wthread = new HandlerThread("thread")

wthread.start()

wHandler = new Handler(wthread.getLooper())

wHandler.post(runnable)

这时重写runnable的run函数才可以实现重新开启一个线程。

在这个线程里面可以读写串口,但是界面的刷新不能在这个子线程里面做。必须主线程在做一个handler,然后子线程调用Message 变量传进主线程的handler.sendMessage(msg)然后主线程用handlerMessage接收子线程传过来的消息,在主线程里面刷新界面。

不会。Linux在嵌入式Linux上跑一个多线程多程序,多个线程去读串口接收buf是没有问题,因此linux线程多了不会影响串口数据接收。Linux是一套免费使用和自由传播的类Unix *** 作系统,可以任意修改其源代码。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8714413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存