我到处都听到关于并发编程的说法。你们能解释一下它是什么吗? c++的新标准是如何促进同样的工作的?
发布于 2008-10-20 15:27:16
并发性是指你的代码同时做多件事。这通常是通过显式的“线程”来完成的,但也有其他的可能性。例如,如果您在代码中使用OpenMP指令,那么支持OpenMP的编译器将自动为您生成线程。
线程是“执行线程”的缩写。在单线程C++程序中,执行从main()开始,然后按顺序执行。在多线程程序中,第一个线程从main开始,但是附加的线程可以由应用程序启动,这些线程从用户指定的函数开始。然后,这些线程与原始线程并发或并行运行。
在C++0x中,线程是使用std::thread类启动的:
void my_function()
{
// do stuff
}
std::thread my_thread(my_function); // run my_function in its own thread新的C++0x标准还支持:
使用
std::atomic<>类模板、用于数据保护的std::mutex、std::recursive_mutex等)和易于管理锁生存期的std::condition_variable_any)thread_local 的问题
我在我的关于devx.com的文章中对新的C++0x线程库进行了更详细的概述:Simpler Multithreading in C++0x
我在my blog上用C++编写了关于多线程和并发的文章。我还在写一本关于这个主题的书:C++ Concurrency in Action。
发布于 2008-10-20 15:38:30
当您说“c++新标准如何促进”并发编程时,我假设您指的是即将推出的(?)即将发布的C++09标准。
新标准目前处于草案形式,它支持以下有助于并发编程的项目:
互斥互斥(
发布于 2008-10-20 15:18:29
也许这个视频可能会给你带来一些启发:-)
http://channel9.msdn.com/posts/Charles/The-Concurrency-Runtime-Fine-Grained-Parallelism-for-C/
https://stackoverflow.com/questions/218786
复制相似问题