我对C中的线程非常陌生,所以想要在开始之前检查我的想法是否有效且相对简单。我想编写一个程序,可以使用Modbus RTU在两个不同的线程(每个COM端口一个线程)上同时读取2个COM端口。我相对精通使用libmodbus函数等,它只是我需要帮助的线程部分。
所以,有几个问题: 1)这是否可以相对容易地实现(任何例子,无论多么简单都会受到重视),如果是这样的话,需要考虑哪些内存?
2)在C中实现多线程需要哪些相关的头文件?
答案 0 :(得分:1)
所以,有几个问题:1)这是否可以相对容易地实现(任何例子,无论多么简单都会受到高度赞赏)
线程本身就是一个相当高级的主题,然后您还可以使用系统特定的方法来使用COM端口。您将不得不研究多线程和特定于操作系统的COM端口库例程。这不是微不足道的。
需要考虑哪些关于记忆的考虑因素?
不应该担心,除了你可能想要实现一些缓冲系统,如果被多个线程使用,它必须受到互斥锁的保护。
在C中实现多线程需要哪些相关的头文件?
取决于系统。对于Linux和其他POSIX系统,请使用pthread.h
中的pthreads(POSIX线程)。 Windows编译器可能支持也可能不支持它们。否则,Windows使用自己的线程例程CreateThread
等.Visual Studio或C ++ Builder等RAD工具具有围绕CreateThread
的包装类。其他系统可能有不同的库。
尝试使用C11标准来标准化线程,但是那个仍处于试验阶段,我们还没有告诉它是否会被使用或结果是惨败 - 如果有任何编译器支持C11线程的话。目前,pthreads是最常用的行业标准。