C ++ 11 нити Меры предосторожности

1. Копировать конструктор

нить (Const нить &) = удаление ,
конструктор копирования отключен, объект станд :: нить не конструктор копирования

2. Переместить Конструктор

нить (нить && х) noexcept
вызов не удается оригинал х больше не станд :: объекты резьбы

void threadFun(int& a)
{
    cout << "this is thread fun !" << endl;
}

int value = 2;
thread t1(threadFun, std::ref(value));
thread t2(std::move(t1));
t2.join();

3.get_id ()

Получить Thread ID, возвращаемый тип зОго :: объектов нитки :: ID.

thread t1(threadFun);
thread::id threadId = t1.get_id();
cout << "线程ID:" << threadId << endl;

//threadId转换成整形值,所需头文件<sstream>
ostringstream   oss;
oss << t1.get_id();
string strId = oss.str();
unsigned long long tid = stoull(strId);
cout << "线程ID:" << tid << endl;

4. Создайте нить, опорный параметр проходной зЬй :: реф ()

void threadFun1(int& v)
{
    cout << "this is thread fun1 !" << endl;
    cout << v << endl;
}

int main()
{
    int value = 6;
    thread t1(threadFun1, std::ref(value));
    t1.join();

    getchar();
    return 1;
}

5. Создание потоков, формат параметров функции объекта

 структура fun_obj

{

недействительными оператор () () {do_something (); };

}

станд :: нить тд (fun_obj ()); // объявление функции

Нить :: тд станд ( (fun_obj ()) ); // создать поток

станд :: нить тд {fun_o Ь ()}; // создать поток

fun_obj OBJ;

станд :: нить тд (объект); // создать поток

6. Параметры темы: объекты функций, строка символов ссылки (дословный / символ * / строка проблемы неявного преобразования) 

 

 

рекомендация

отblog.csdn.net/smartgps2008/article/details/90737553