当前位置: 首页 > news >正文

微信微网站是什么格式的wordpress 首页调用

微信微网站是什么格式的,wordpress 首页调用,h5 网站模板,简单学校网站模板免费下载std::scoped_lock和std::lock() 同时锁多个mutex std::scoped_lock 和 std::lock() 都是 C 标准库中用于管理多个 std::mutex 对象的工具#xff0c;但它们在使用方式和一些方面上存在一些区别。以下是它们的主要区别#xff1a; 用法差异#xff1a; std::scoped_lock 是一…std::scoped_lock和std::lock() 同时锁多个mutex std::scoped_lock 和 std::lock() 都是 C 标准库中用于管理多个 std::mutex 对象的工具但它们在使用方式和一些方面上存在一些区别。以下是它们的主要区别 用法差异 std::scoped_lock 是一个模板类你需要将要锁定的所有 std::mutex 作为参数传递给它的构造函数。它会在构造时锁定所有提供的互斥量而在析构时自动释放这些锁。 std::mutex mtx1; std::mutex mtx2;{std::scoped_lock lock(mtx1, mtx2); // 锁定 mtx1 和 mtx2// 在这个作用域内mtx1 和 mtx2 都已经被成功锁定 } // 在这个作用域结束时mtx1 和 mtx2 会被解锁支持RAIIstd::lock() 是一个函数接受任意数量的 std::mutex 参数并在一次函数调用中尽可能地同时锁定所有提供的互斥量。这可以避免死锁并且比分别调用 std::lock_guard 或 std::unique_lock 更高效。 std::mutex mtx1; std::mutex mtx2;std::lock(mtx1, mtx2); // 锁定 mtx1 和 mtx2 //需要手动解锁不支持RAII死锁避免 std::lock() 在一次函数调用中尝试锁定所有提供的互斥量如果无法同时锁定会产生 std::system_error 异常。因此在使用 std::lock 时确保所有互斥量都是可锁定的否则会导致程序异常终止。std::scoped_lock 在构造时就锁定了所有提供的互斥量如果无法同时锁定会产生 std::system_error 异常。因此在使用 std::lock 时确保所有互斥量都是可锁定的否则会导致程序异常终止。 在C中条件变量Condition Variable是用于线程间同步的一种机制。条件变量通常与互斥锁结合使用用于实现线程的等待和唤醒机制以确保线程在满足某些条件时才能执行。 常用的条件变量相关的类有 std::condition_variable 和 std::condition_variable_any。以下是简要介绍和使用条件变量的基本模式 条件变量 std::condition_variable 使用示例 #include iostream #include thread #include mutex #include condition_variablestd::mutex mtx; std::condition_variable cv; bool dataReady false;void producer() {// 模拟生产数据std::this_thread::sleep_for(std::chrono::seconds(2));// 加锁修改共享状态std::unique_lockstd::mutex lock(mtx);dataReady true;// 通知等待的线程cv.notify_one(); }void consumer() {std::unique_lockstd::mutex lock(mtx);// 等待条件变量通知cv.wait(lock, [] { return dataReady; });// 消费数据std::cout Data consumed. std::endl; }int main() {std::thread producerThread(producer);std::thread consumerThread(consumer);producerThread.join();consumerThread.join();return 0; }在这个示例中std::condition_variable 与 std::mutex 一起使用cv.wait(lock, predicate) 用于等待条件变量的通知而 cv.notify_one() 用于通知等待的线程。 要点 std::condition_variable 需要与 std::mutex 一起使用以确保在条件变量上进行操作时的线程安全性。std::unique_lock 提供了更灵活的锁定和解锁操作可以在需要的时候手动解锁例如在等待条件变量时。cv.wait(lock, predicate) 中的 predicate 是一个可选的谓词函数用于检查条件是否满足如果条件不满足则继续等待。 条件变量的正确使用可以确保线程在适当的时候等待和唤醒以避免不必要的轮询和提高程序的效率。 线程异步和通信 std::promise异步调用 std::promise 和 std::future 是 C11 标准库中提供的两个工具用于在多线程之间传递数据或者实现异步操作。 std::promise std::promise 用于在一个线程中存储一个值然后在另一个线程中通过 std::future 获取这个值。一个 std::promise 对象关联一个 std::future 对象后者可以在其他线程中被用来获取由 std::promise 对象设置的值。 std::promise 的 set_value 成员函数只能成功调用一次。一旦调用 set_valuestd::promise 对象就变得不能再用于设置新的值。 std::future 提供访问异步操作结果的机制 get() 阻塞等待promise set_value 的值 示例 #include iostream #include futurevoid setValue(std::promiseint prom) {prom.set_value(42); }int main() {std::promiseint myPromise;std::futureint myFuture myPromise.get_future();std::thread t(setValue, std::ref(myPromise));t.join();int result myFuture.get();std::cout Received value from promise: result std::endl;return 0; }std::promise 用于在一个线程中设置值然后通过与关联的 std::future 在另一个线程中获取这个值。std::future 则用于获取异步任务的结果。 std::future std::future 用于从异步任务中获取值。std::future 对象可以通过与 std::promise 关联或者通过 std::async、std::packaged_task 等方式创建。 示例 #include iostream #include futureint calculate() {return 21; }int main() {std::futureint myFuture std::async(std::launch::async, calculate);int result myFuture.get();std::cout Result from future: result std::endl;return 0; }需要注意的是std::promise 和 std::future 通常是成对使用的但也可以通过其他方式创建 std::future 对象比如使用 std::async。 总体来说std::promise 和 std::future 是 C 中实现简单异步编程的一种方便机制。
http://www.zqtcl.cn/news/358945/

相关文章:

  • 饰品网站建设规划书搭建微信网站
  • 开发网站访问流量赚钱加盟网站需要怎么做
  • 装饰协会网站源码湖南省郴州市北湖区
  • 花都网站建设价格重庆市住房和城乡建设厅网站
  • 北京住总第一开发建设有限公司网站wordpress 网站访问认证页面
  • 网站制作的管理苏州百度推广服务中心
  • 厦门建行网站首页企业展厅建筑外观
  • 重庆定制型网站建设1000套网站源码
  • 阿里云网站建设服务费会计科目安平县建设局网站
  • 网上做国外兼职网站网络编程技术实验报告
  • iis网站服务器安全隐患分析创新的合肥网站建设
  • 蛋糕网站建设方案广州网站公司推荐
  • 无锡seo公司网站广渠门做网站的公司
  • 安徽股票配资网站建设seo教程自学网
  • 网站建设酷隆做3d建模贴图找哪个网站
  • 天津市工程建设交易管理中心网站自己如何搭建服务器
  • 汉语网站建设心得专业网站的定义
  • 泉州台商区建设局网站论坛内网站怎么建设
  • 做文字云的网站平面设计发展前景
  • 域名注册后怎么建网站万网建站教程
  • 郑州网站建设幸巴石家庄站规模
  • 江华网站建设企业传统的网络营销推广方法
  • 网站开发与推广新网站开发工作总结
  • 永修县建设局网站长沙网站关键词优化
  • 厦门建站服务低代码开发会废了程序员吗
  • 安阳汤阴县网站建设下载wix做的网站
  • 福清市建设局网站深圳工业设计协会封昌红
  • 网站建设公司做网站要多少费用重庆找工作哪个网站好
  • 苏州网站建设方法cnzz网站排名是怎么做的
  • 烟台网站建设服务专业的企业智能建站制造厂家