http://www.eclipse.org/cdt/downloads.php
GCC最基本的用法是∶gcc [options] [filenames]
但是今天我的实验结果却是
g++ testThread.cpp -o test -pthread -std=c++11 这个是正确的
g++ -lpthread -std=c++11 -o test testThread.cpp 可以编译通过,但是会报
terminate called after throwing an instance of 'std::system_error'
what(): Enable multithreading to use std::thread: Operation not permitted
Aborted (core dumped)
这个错误
当我把-lphread改为-phread时,
g++ -pthread -std=c++11 -o test testThread.cpp
编译通过并能正确运行,所以基本的用法是正确无误的,自己的一点粗心引出自己对基本用法的怀疑.
关于线程thread
thread对象并不会自动管理线程结束,需要手动控制。常见的控制手段有两个,join和detach。join用于等待线程结束,而detach的功能是托管线程,线程仍然继续运行至结束,但不再受到thread对象控制
用std::ref显式取得对象的引用