Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 单核处理器:Pthreads和OpenCV的不良行为_Multithreading_Opencv_Posix_Robotics - Fatal编程技术网

Multithreading 单核处理器:Pthreads和OpenCV的不良行为

Multithreading 单核处理器:Pthreads和OpenCV的不良行为,multithreading,opencv,posix,robotics,Multithreading,Opencv,Posix,Robotics,我正在开发一个监视机器人,其中我使用了一块PcDuino2板(ARM Cortex A8单核)作为项目中唯一的处理器。Ubuntu作为我选择的操作系统安装在主板上 我的软件是这样编写的:我使用Posix线程,我有一个线程TCP服务器,它从HTML接口(Websocket)接收命令,因此,一旦服务器接收到这些命令,就会验证这些命令,并调用一些函数来移动机器人(上、下、左、右)或者启动/停止查找彩色球的OpenCV线程(仅举一个示例) 事实上,当OpenCV线程没有运行时,机器人的移动会按预期进行,

我正在开发一个监视机器人,其中我使用了一块PcDuino2板(ARM Cortex A8单核)作为项目中唯一的处理器。Ubuntu作为我选择的操作系统安装在主板上

我的软件是这样编写的:我使用Posix线程,我有一个线程TCP服务器,它从HTML接口(Websocket)接收命令,因此,一旦服务器接收到这些命令,就会验证这些命令,并调用一些函数来移动机器人(上、下、左、右)或者启动/停止查找彩色球的OpenCV线程(仅举一个示例)

事实上,当OpenCV线程没有运行时,机器人的移动会按预期进行,但当OpenCV线程运行时,我无法使用我的界面移动机器人(即使正确接收命令并调用正确的函数)

OpenCV线程似乎消耗了所有处理器资源

嗯,我的源文件托管在我的github中:

要查看的主要文件是server.cpp和tasks.cpp,因此您将更好地理解我所写的内容


使用单核处理器可以使电机与OpenCV线程处理并行运行?

在处理过程中可以添加一些微小的休眠命令吗?或者使用线程优先级可能会有所帮助?我尝试在另一个线程中实现马达移动,然后当服务器收到命令时,它执行一个调用马达移动函数的线程,然后执行一个睡眠。但它不起作用。我在谷歌上搜索了一些与Posix线程优先级相关的代码片段,但没有成功。你有什么要帮忙的吗?谢谢。我来测试一下。但是我发布的目的不是“解决”我的代码的不良行为,而是讨论解决问题的替代方法,以提高我的编码技能。我不确定“正确”的方法是什么。可能是som事件循环之类的系统?