//并发
//两个或者更多的任务(独立的活动)同时发生(进行)
//一个程序同时执行多个独立任务
//单核CPU,并发的假象,这种上下文切换是有时间开销的
//多核;一块芯片上有双核,4核,8,16
//1. 多进程并发
//多个进程实现并发
//打开多个word ,打开多个IE浏览器
//账号服务器,游戏逻辑服务器,服务器之间的通信
//进程:(同一台电脑:管道,文件,消息对列,共享内存
//不同电脑:socket通信技术)
//2.多线程并发
//单个进程中,创建多个线程。
//每个线程都有自己独立的运程路径,一个进程中的有所线程共享地址空间(共享内存),
//全局变量,指针,引用。都可以在线程之间传递。所以多线程开销运运小于多进程。
//C++11新标准线程库
//windows:createThread() ,_beginthread() _beginthreadex()
//linux:pthread_create():创建线程
//临界区,互斥量
//以住多线程代码不能跨平台
//POSIX thread(pthread):跨平台,做一番配置,所以用起来它也不是那么方便
//---------------c++11新标准,c++语言本身增加多线程的支持,意味着可移(跨平台),大大减少开发人员工作量了
//网络通信服务器
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include <thread>
using namespace std;
void myprint()
{
cout << "myprint start" << endl;
cout << "myprint end" << endl;
}
int main()
{
//一:线程的开始和结束
thread myobj(myprint);//创建线程,线程入口myprint(), 线程开始执行
//等待myprint()执行完
myobj.join();//加入,汇合,说白了就是阻塞,让主线程等待子线程执行完毕,然后子线程和主线程汇合
cout << "I love china !" << endl;
return 0;
}