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

江苏省建设招标网站有个印度做网站的天天找我

江苏省建设招标网站,有个印度做网站的天天找我,没钱可以注册50万的公司吗,做药品网站有哪些内容目录 死锁的危害 死锁出现的原因 死锁的解决方法 死锁是计算机科学中一个非常重要的概念#xff0c;特别是在多线程、并发编程以及数据库管理系统等领域中。下面是关于死锁的危害、出现原因和解决方法的基础概述#xff1a; 死锁的危害 资源浪费#xff1a;死锁导致系统…         目录 死锁的危害 死锁出现的原因 死锁的解决方法 死锁是计算机科学中一个非常重要的概念特别是在多线程、并发编程以及数据库管理系统等领域中。下面是关于死锁的危害、出现原因和解决方法的基础概述 死锁的危害 资源浪费死锁导致系统中的资源被无效地占用而无法释放从而浪费了系统资源。程序停滞死锁会导致相关进程或线程被永久阻塞无法继续执行从而影响系统的正常运行。系统崩溃在一些情况下死锁可能导致系统崩溃从而造成严重的后果。 #include iostream #include thread #include mutexstd::mutex mutex1; std::mutex mutex2;void function1() {std::lock_guardstd::mutex lock1(mutex1);std::this_thread::sleep_for(std::chrono::milliseconds(100));std::lock_guardstd::mutex lock2(mutex2);std::cout Function 1 acquired mutex1 and mutex2\n; }void function2() {std::lock_guardstd::mutex lock2(mutex2);std::this_thread::sleep_for(std::chrono::milliseconds(100));std::lock_guardstd::mutex lock1(mutex1);std::cout Function 2 acquired mutex2 and mutex1\n; }int main() {std::thread t1(function1);std::thread t2(function2);t1.join();t2.join();return 0; }这段代码创建了两个线程每个线程都试图获取两个互斥量mutex1和mutex2的所有权但是获取的顺序是相反的。如果这两个线程同时运行就会发生死锁因为一个线程持有了mutex1但试图获取mutex2而另一个线程持有了mutex2但试图获取mutex1从而导致彼此互相等待最终导致程序停滞。 为了避免死锁需要确保在多个线程中获取互斥量的顺序是一致的。 死锁出现的原因 死锁通常发生在多个进程或线程之间由于彼此持有对方所需的资源而导致的循环等待。常见的原因包括 资源竞争多个进程争夺有限的资源但由于资源分配不当或者进程执行顺序不当导致发生死锁。进程推进顺序不当当多个进程按照不同的顺序获取资源但释放资源的顺序不当时可能导致死锁。并发访问共享资源多个进程同时访问共享资源并且不加控制地相互等待对方释放资源从而导致死锁。 #include iostream #include thread #include mutexstd::mutex mutex;void access_shared_resource(int thread_id) {std::lock_guardstd::mutex lock(mutex); // 获取互斥锁std::cout Thread thread_id is accessing the shared resource.\n;std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 模拟访问共享资源需要的时间// 假设这里需要访问另一个共享资源std::lock_guardstd::mutex lock2(mutex); // 再次获取互斥锁尝试访问另一个共享资源std::cout Thread thread_id is accessing another shared resource.\n; }int main() {std::thread t1(access_shared_resource, 1);std::thread t2(access_shared_resource, 2);t1.join();t2.join();return 0; }在这个例子中两个线程 t1 和 t2 同时尝试访问共享资源并且在获取第一个共享资源后又尝试获取另一个共享资源。然而它们没有适当地协调共享资源的访问顺序而是简单地相互等待对方释放资源这可能导致死锁。 这个例子展示了并发访问共享资源时可能发生的死锁情况因为多个进程或线程同时访问共享资源并且不加控制地相互等待对方释放资源从而导致了死锁的发生。 死锁的解决方法 避免死锁通过合理地设计算法和资源分配策略使系统尽量避免进入死锁状态。比如银行家算法等。检测与恢复设计算法检测系统中的死锁并且在检测到死锁时采取相应的措施进行恢复如中断一些进程或者回滚操作。预防死锁采用一些方法预防死锁的发生例如破坏死锁产生的必要条件之一比如破坏循环等待条件、破坏互斥条件等。资源分配策略采用合适的资源分配策略确保资源的有效利用并且尽量减少死锁的发生。 #include iostream #include thread #include mutexstd::mutex mutex1; std::mutex mutex2;void function1() {std::lock(mutex1, mutex2); // 使用 std::lock 来一次性获取多个互斥量的所有权避免死锁std::lock_guardstd::mutex lock1(mutex1, std::adopt_lock); // 使用 std::adopt_lock 参数表示已经拥有互斥量的所有权std::lock_guardstd::mutex lock2(mutex2, std::adopt_lock);std::cout Function 1 acquired mutex1 and mutex2\n;// 这里执行任务 }void function2() {std::lock(mutex1, mutex2); // 使用 std::lock 来一次性获取多个互斥量的所有权避免死锁std::lock_guardstd::mutex lock1(mutex1, std::adopt_lock); // 使用 std::adopt_lock 参数表示已经拥有互斥量的所有权std::lock_guardstd::mutex lock2(mutex2, std::adopt_lock);std::cout Function 2 acquired mutex1 and mutex2\n;// 这里执行任务 }int main() {std::thread t1(function1);std::thread t2(function2);t1.join();t2.join();return 0; }在这个例子中function1 和 function2 都试图获取 mutex1 和 mutex2 的所有权。通过使用 std::lock 函数一次性获取多个互斥量的所有权并且使用 std::adopt_lock 参数表示已经拥有互斥量的所有权可以避免死锁的发生。这种方式可以保证无论线程以什么顺序获取锁都不会发生死锁。  这些方法通常是根据具体情况和需求来选择和应用的不能一概而论。在实际应用中通常需要根据系统的特点和需求综合考虑选择合适的死锁处理方法。
http://www.pierceye.com/news/710066/

相关文章:

  • 一般做外单的有哪些网站太原市网站制作公司
  • wordpress 文章内seo代码优化工具
  • 做网站用的笔记本配置网络科技公司骗术
  • 在线建设网站江苏中南建设集团网站是多少
  • 中国建设银行官网站陕西西安网站建设域名怎么用
  • 佛山高端网站制作公司自己做的网站怎么发布到百度
  • 网站建设空间选择的重要性wordpress菲插件关键词
  • 基于wap的企业网站设计与实现洛阳霞光seo网络公司
  • 在家做的手工活哪里有网站网站开发与运营方向和企业管理方向
  • 厦门网站建设厦门南京宣传片公司有哪些
  • 专门做问卷的网站南宁做网站公司
  • 鹰潭做网站公司网站模板及素材
  • dw网站引导页怎么做wordpress 福利
  • PS网站设计网站每年都要备案吗
  • 建设通网站账号erp实施顾问
  • 变装小说 wordpress网站建设好怎么优化
  • 苏州网站建设制作开发公司江浦做网站
  • 网站开发哪一门语言更快网站设计方案模板
  • 阿里云做网站需要些什么条件个人博客网站设计模板
  • 更改网站模板内容我赢职场wordpress
  • h5模板下载有哪些网站南京高端网站制作公司
  • 户外旅游网站模板佛山网络优化推广公司
  • 海南住房和城乡建设网站技术支持 重庆网站
  • 网站图片展示代码怎样给响应式网站提速
  • 学校 网站建设 招标广而告之微信推广平台
  • 企业如何通过地方网站宣传网站中国建设银行招聘官网
  • 上海品牌网站建设公网站的开发与建设项目
  • 做网站的艰辛电子商务网站建设与维护概述
  • 织梦网站做关键词网站开发到上线的过程
  • 威海千淼网站建设北京知名广告公司有哪些