std::lock_guard<std::mutex> lock(m);
std::cout << "hello from thread1\n";
}
}
void print2() {
while(true) {
std::lock_guard<std::mutex> lock(m);
std::cout << "hello from thread2\n";
}
}
int main() {
std::cout << "hello from Ufa!";
std::thread thread1{print1};
std::thread thread2{print2};
thread1.join();
thread2.join();
return 0;
}
почему переключение на другой поток не срабатывает? этот код оптимизируется? если поставить std::this_thread::sleep то переход есть
И не может. Планировщик потоков всегда отдает приоритет не переключению контекста. У тебя или юзать трюки типа sleep или вводить условную переменную и управлять переклечением потоков самому.
И тебе привет :)
Обсуждают сегодня