加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

在linux中并行处理

发布时间:2021-01-11 14:24:55 所属栏目:Linux 来源:网络整理
导读:我不确定如何处理我正在编写的程序中的异步任务,我希望有经验的人至少可以指出我正确的方向. 我在嵌入式ARM处理器上运行Angstrom Linux.我的程序通过暴露的硬件PWM和PTP上的摄像头控制多个伺服系统.此外,它是套接字守护程序,它从任意客户端(在此实例中为An

我不确定如何处理我正在编写的程序中的异步任务,我希望有经验的人至少可以指出我正确的方向.

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

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

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

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

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

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

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读