C++ 并发程序运行解决思路

C++ 并发程序运行
在C++一个程序中,一般都是顺序运行的,如A - B  -C  ,A运行完之后依次运行B,C,但是现在有一个问题来了,比如说B的运行时间比较长,如10秒,而B的运行条件是A运行完之后才能运行B,现在有很多个B没运行,在等着排队,而A只会运行一次,怎么能让B在A运行完之后,并列几个B来运行?如果用for循环的话,B还是顺序运行的,要10秒时间,怎么让B并列运行,程序运行时间缩短至5秒呢?
顺序  A - B-B-B-B...B  -C

        B-B-B...B
并列  A <           > C  
        B_B-B...B 

如上,怎么打到并列运行,求一个小例子。
------解决思路----------------------
起线程,起进程都可以。同时确定电脑的CPU是多核的
------解决思路----------------------
在运行完A得到需要的值后,
        pThread(,,()funB1,..);
 pThread(,,()funB2,..);
 pThread(,,()funB3,..);
 pThread(,,()funB4,..);
                 .......
funB1(LPARAM lpParam)
{
}

funB1(LPARAM lpParam)
{
}

funB2(LPARAM lpParam)
{
}

..................
------解决思路----------------------
#include <future>

A();
std::async(std::launch::async, B);
std::async(std::launch::async, B);
//...
C()

------解决思路----------------------
多线程运行B就可以了啊
------解决思路----------------------
看起来又没有死锁问题  你直接用多线程就ok了啊~~~
------解决思路----------------------
http://blog.sina.com.cn/s/blog_4b4409c30100vmi2.html
------解决思路----------------------
开n个线程去处理b过程,当A处理完成的时候,post数据到b的线程,线程id 可以  i++%n 这样可以平均分配线程
等b完成后有post到c线程

网狐底层框架就是这么搞的
------解决思路----------------------
活多就多派点人手。
B多线程没有问题。
------解决思路----------------------
多线程这些涉及到具体操作系统,不过c++11已经支持多线程了。我觉得思路是并行处理B,那就开N个线程,高开始让这N个线程睡眠,此时不会耗cpu,等A完成后,唤醒这N个线程。至于具体怎么做,要看是linux平台还是win,每个平台都有相应实现。
------解决思路----------------------
C++11中提供的线程类不是太好用,如果你在WIN32平台,就直接用PPL实现吧,很容易,需要两个东西:等待一个任务执行完成后再执行下一个任务和paralle_for_each