繁体   English   中英

使用C ++实现线程

[英]Implementing threads using C++

我的应用程序中有一个API调用,我在其中检查单个调用所花费的时间。 我将其放在FOR循环中,并使用10000次调用来获取所有调用的平均时间。 现在出现的问题是使用该API的实际应用程序是多线程的。 如果我希望我的应用程序也做同样的事情,我将如何做呢?

该平台是REL,我的目标是使用相同的参数或不同的参数同时发送多个呼叫。 可以用C ++实现吗?如果可以,可以使用哪些库函数,是否可以提供一个示例?

最好的用于线程化的C ++库是Boost中的线程库,但是像所有C ++线程一样,您将被迫手动进行同步。 您将需要使用互斥锁和锁定类型来使其正常工作。 您的问题不是很清楚,所以我真的无法再为您提供帮助(尽管我认为您实际上不需要线程,但是我可能会完全误解)。

如果您阅读Miranda IM源代码,它将带您入门。 这做得很好,代码中有一些很好的提示,说明如何重新设置其他可执行文件的内存偏移量(在Windows上),以使它们更快地加载。

http://www.miranda-im.org/development/

我不知道REL平台。

我可能会建议使用OMP替代方案,它并不是每个人所说的Threads,但它确实可以完成工作,并且在这种情况下非常容易使用。 显然,它可以在许多编译器上运行。

从C ++ 11开始,不再需要使用Boost。 C ++ 11包含std::thread ,支持Booster的互斥量,条件变量等。

您可以在C ++参考中了解C ++ 11在线程方面的功能

在什么平台上? 几乎每个人都支持线程,我想他们都拥有有关如何创建线程的文档。 在Windows下,您可以调用CreateThread API。

Pthreads是您如何在Linux上实现的。 Solaris的Solaris线程。

我对REL平台不熟悉。 总的来说,我更喜欢使用英特尔的TBB作为线程,但是目前它仅在x86芯片上运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM