C++ Concurrency in Action 2nd Edition note
为什么使用并发?关注点分离(SoC)和性能。收益大于付出时才使用并发。
native_handle() 将线程转换为平台相关句柄。
#include<iostream>
#include<thread>
void hello(){
std::cout<<”hello concurrent world\n”;
}
int main(){
std::thread t(hello);
t.join();
}
每个线程都有一个初始函数,主线程的初始函数是main()
。这里新线程的初始函数是hello()
。
新线程开始后,主线程继续执行。(主线程是否会被抢占?新线程的优先级是多少?主线程和新线程哪一个先执行?可能不同系统处理不一样
)。如果主线程调用了join()
,那么如果主线程执行到join()
时,新线程还没有执行完毕,那么主线程会等待新线程执行完毕,再继续往下执行;如果主线程执行到join()
时,新线程已经执行完毕,那么主线程继续往下执行。
网友评论