线程读取使用libmodbus读取COM端口

时间:2016-08-15 08:18:11

标签: c multithreading pthreads modbus

我对C中的线程非常陌生,所以想要在开始之前检查我的想法是否有效且相对简单。我想编写一个程序,可以使用Modbus RTU在两个不同的线程(每个COM端口一个线程)上同时读取2个COM端口。我相对精通使用libmodbus函数等,它只是我需要帮助的线程部分。

所以,有几个问题: 1)这是否可以相对容易地实现(任何例子,无论多么简单都会受到重视),如果是这样的话,需要考虑哪些内存?

2)在C中实现多线程需要哪些相关的头文件?

1 个答案:

答案 0 :(得分:1)

  

所以,有几个问题:1)这是否可以相对容易地实现(任何例子,无论多么简单都会受到高度赞赏)

线程本身就是一个相当高级的主题,然后您还可以使用系统特定的方法来使用COM端口。您将不得不研究多线程和特定于操作系统的COM端口库例程。这不是微不足道的。

  

需要考虑哪些关于记忆的考虑因素?

不应该担心,除了你可能想要实现一些缓冲系统,如果被多个线程使用,它必须受到互斥锁的保护。

  

在C中实现多线程需要哪些相关的头文件?

取决于系统。对于Linux和其他POSIX系统,请使用pthread.h中的pthreads(POSIX线程)。 Windows编译器可能支持也可能不支持它们。否则,Windows使用自己的线程例程CreateThread等.Visual Studio或C ++ Builder等RAD工具具有围绕CreateThread的包装类。其他系统可能有不同的库。

尝试使用C11标准来标准化线程,但是那个仍处于试验阶段,我们还没有告诉它是否会被使用或结果是惨败 - 如果有任何编译器支持C11线程的话。目前,pthreads是最常用的行业标准。