如何防止某一线程在执行过程中不会被切换?
发布时间:2022-12-16 11:08:25 所属栏目:Unix 来源:
导读: 我估计是他又想做多线程,又不做数据的并发保护,以单线程的思想作多线程
引用 8 楼 hankcs 的回复:
如果一定要不被调度unix线程切换,只有换一个实时的操作系统,Windows最高优先级的线程也有被
引用 8 楼 hankcs 的回复:
如果一定要不被调度unix线程切换,只有换一个实时的操作系统,Windows最高优先级的线程也有被
我估计是他又想做多线程,又不做数据的并发保护,以单线程的思想作多线程 引用 8 楼 hankcs 的回复: 如果一定要不被调度unix线程切换,只有换一个实时的操作系统,Windows最高优先级的线程也有被调度走的时候 [/Quote] 谢谢arong1234兄的意见,并不是如你所推测的以单线程的思想在做多线程. 在此向各位说明一下这个问题发生的详细背景: 该应用程序是负责和一下位机设备进行通信驱动的,其中最主要的功能是向下位机设备发送上百K左右的数据,由于下位机的硬件资源所限制,不能一次全部发送,须每次10k左右的数据量一包共十来次发送,发送数据前,先发一个数据包头,说明该次发送的数据包的数量等.下位机设备是边接收包数据边进行数据处理,在这个过程中,偶尔会出现下位机设备报错信息的,报错的原因是接受不全数据包,表示下位机在一定时间内(几十毫秒级)的等不到一个数据包.所以我就首先怀疑是否上位机在循环10次数据包的过程中,中间系统切换到了跑另外一个线程,然后再切换回来发送剩下的几个包的数据,这时下位机由于等待的时间已经超过了设定的时间限值而报错了。 当然,这样的通信机制是否合理这又是另外一个问题。 (编辑:开发网_新乡站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐