在linux中并行处理

在linux中并行处理,第1张

概述我不确定如何处理我正在编写的程序中的异步任务,我希望有经验的人至少可以指出我正确的方向. 我在嵌入式ARM处理器上运行Angstrom Linux.我的程序通过暴露的硬件PWM和PTP上的摄像头控制多个伺服系统.此外,它是套接字守护程序,它从任意客户端(在此实例中为Android)中获取命令.相机PTP很慢,我不想等待它完成任务,因为程序的其余部分需要响应. 我已经尝试过线程,但相机线程中的任何问 我不确定如何处理我正在编写的程序中的异步任务,我希望有经验的人至少可以指出我正确的方向.

我在嵌入式ARM处理器上运行Angstrom Linux.我的程序通过暴露的硬件PWM和PTP上的摄像头控制多个伺服系统.此外,它是套接字守护程序,它从任意客户端(在此实例中为Android)中获取命令.相机PTP很慢,我不想等待它完成任务,因为程序的其余部分需要响应.

我已经尝试过线程,但相机线程中的任何问题似乎都会破坏整个过程.理想情况下,我想自己发送相机来做它的事情,当它完成时让主功能知道.这是一种合适的分叉技术还是我实施了不正确的线程?

另外,我想远离大型二级库,以避免我已经拥有的任何交叉编译问题.在此先感谢您的任何建议.

解决方法 采取史蒂夫的答案的基本方法,但跳过init(8)和命名管道.

fork()包含您的摄像头代码并通过常规管道或域套接字进行通信的子级.在父代码中为SIGCHLD编码信号处理程序.如果子代死,则使用wait()的返回代码查询原因.如果它自行死亡然后清理并重新启动它;如果它正常结束那么在这种情况下做适当的事情.通过最终选择的IPC与孩子沟通.这使您可以比init和域套接字或管道更多地控制子进程,特别是,与使用FIFO的时髦语义相比,它将使父进程和子进程之间的设置和通信变得更容易.

当然,如果相机代码确实存在问题,那么你所做的就是通过不取下整个程序来使故障更容易管理.理想情况下,如果在您的能力范围内,您应该让相机代码完美地工作.

总结

以上是内存溢出为你收集整理的在linux中并行处理全部内容,希望文章能够帮你解决在linux中并行处理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存