/** =========================================================================** FileName: std_timed_mutex.cpp** Description:** Version: 1.0* Created: 2018年01月17日 16:37:39* Last Modified: 2021年10月23日 21:40:09* Revision: none* Compiler: gcc** Author: zt ()* Organization:** =========================================================================*/#include <iostream>#include <mutex>#include <thread>#include <vector>#include <sstream>std::mutex cout_mutex; // control access to std::coutstd::timed_mutex mutex;void job ( int id ){using Ms = std::chrono::milliseconds;std::ostringstream stream;for ( int i = 0; i < 3; ++i ){if ( mutex.try_lock_for ( Ms ( 100 ) ) ){stream << "success ";std::this_thread::sleep_for ( Ms ( 100 ) );mutex.unlock();}else{stream << "failed ";}std::this_thread::sleep_for ( Ms ( 100 ) );}std::lock_guard<std::mutex> lock ( cout_mutex );std::cout << "[" << id << "] " << stream.str() << "\n";}int main(){std::vector<std::thread> threads;for ( int i = 0; i < 4; ++i )threads.emplace_back ( job, i );for ( auto& i : threads )i.join();}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。