请问并发和多线程的区别

最近编写代码遇到性能瓶颈,通常解决性能问题的方法就是加线程,最近了解到Windows提供了AMP库和并发运行时ConCRT,好像不是特别清除,请问AMP库、并发运行时ConCRT和普通的多线程(标准C++的std::thread、win32的CreateThread或者mfc的Cthread都感觉是一个东西)的区别是什么,在什么情景下使用AMP库或者并发运行时ConCRT能获得更快的速度呢?