多线程或共享内存 - 架构

时间:2014-08-05 13:25:31

标签: multithreading memory embedded shared

我的申请分为三部分:

  1. 通过runge-kutta方法求解21变量diff方程的数值模拟器 - 直接来自C中的数值公式,步长为0.0001 s

  2. 每1秒ping一次基于PIC的微处理器并通过USB-COM端口以每秒约3600个样本接收数据的C代码;它通过TCP / IP

  3. 将相关数据发送到前端
  4. JAVA前端通过SWIG(用于C代码)和JNI从数值模拟器读取数据,通过微处理器的输入修改参数,最后将其绘制到GUI。

  5. 我想现在用C ++重新编码JAVA前端,可以选择使用HTML / Javascript进行绘图。

    会在C ++中重写前端,以便数值模拟器在单独的线程上运行是一种好方法吗?

    我不懂线程虽然我已经将它用于JAVA代码中的监听和绘图功能。似乎让它全部在多个线程上运行而不是单独的进程会减慢我的模拟速度。

    我可以将1,2和3组合到一个程序中,还是应该保持分离以保持0.0001 ms的模拟速度以及处理大量微处理器数据的能力。

    请帮助我选择前进的道路!

    提前致谢!

1 个答案:

答案 0 :(得分:0)

在多核平台上,多线程通常可以提高性能。但是,Linux和Windows等GPOS不具有确定性,因此无法保证。

也就是说,现代PC的计算性能很难被这项任务和数据速率所拉伸,所以它也许不重要?