1,并发编程
并发编程由两种模型,第一中模型是多进程,第二种模型使多线程。
进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。 在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多进程。进程之间可以通过多种方式通信,例如文件、管道和消息队列等。
多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。线程之间通过共享内存通信
多线程有点:线程启动快,开销低,通信方式快,缺点:难管理,不能在分布式系统下运行,多进程则可以,
多数情况下多线程和多进程同时使用。
2,简单的多线程程序,本人开发环境,win10,VS2015,工程时C++ win32程序
代码一:如下,
#include <thread>
#include <iostream>
using namespace std;
void Function_1()
{
printf("My name is Funcion_1");
}
int main()
{
thread mythread(Function_1);
mythread.join();
return 0;
}
这是一个简单的多线程程序,这事阻塞式多线程,也就是说当执行了join()方法后,主线程要等待子线程工作,工作完成后再执行主线工作。如果把join()换乘detach(),则改成了非阻塞式,子线程与主线程完全没有关系了。如果主线程关闭时,子线程仍在工作,那么该程序就无法关闭,需要主动关闭子线程。
(下一篇文章链接:https://blog.csdn.net/wangjianbo09/article/details/83758791)