网站开发毕设文献网站设计说明书摘要

pingmian/2026/1/24 18:11:19/文章来源:
网站开发毕设文献,网站设计说明书摘要,wordpress 全站通知,免费网站模板之家目录 1. 问题引入 2.死锁问题的概念和原因 3. 解决死锁问题 1. 问题引入 在学习死锁之前, 我们先观察下面的代码能否输出正确的结果: 运行程序, 能正常输出结果: 这个代码只管上看起来, 好像是有锁冲突的, 此时的 locker 对象已经是加锁的状态, 在尝试对 locker 加锁, 不应该… 目录 1. 问题引入 2.死锁问题的概念和原因 3. 解决死锁问题 1. 问题引入 在学习死锁之前, 我们先观察下面的代码能否输出正确的结果: 运行程序, 能正常输出结果: 这个代码只管上看起来, 好像是有锁冲突的, 此时的 locker 对象已经是加锁的状态, 在尝试对 locker 加锁, 不应该会出现阻塞问题吗? 其实, 问题的关键是,这两次加锁, 其实是在同一个线程上进行的.  由于是同一个线程, 此时锁对象就知道了第二次加锁的线程,  第二次加锁操作就可以直接放行通过, 不会出现阻塞.  这个特性称为 可重入.  使用可重入锁, 可以避免代码出现死锁问题, 如果使用的不是可重入锁, 就会出现死锁问题. 2.死锁问题的概念和原因 Java多线程中的死锁问题是指两个或多个线程互相持有对方所需的资源而无法继续执行的情况。这种情况下线程无法释放已经占有的资源也无法获取自己所需的资源导致程序无法继续执行下去。 通常发生死锁问题需要满足以下四个条件 互斥条件Mutual exclusion至少有一个资源同时只能被一个线程占用。请求与保持条件Hold and wait线程至少已经占有一个资源并且正在请求另一个被其他线程占用的资源。不可剥夺条件No preemption已经分配给一个线程的资源不能被强制剥夺。循环等待条件Circular wait存在一个线程链每个线程都在等待下一个线程所占有的资源。 死锁的例子: 线程1获取到锁A, 线程2获取到锁B, 接下来, 线程1尝试获取锁 B, 线程2尝试获取锁A, 此时出现了死锁问题:   package thread;public class ThreadDemo22 {public static void main(String[] args) {Object A new Object();Object B new Object();Thread t1 new Thread(()- {synchronized (A) {// sleep 是为了t2时间, 让t2也能拿到 Btry {Thread.sleep(1000);}catch (InterruptedException e) {e.printStackTrace();}//尝试获取B, 并没有释放 Asynchronized (B) {System.out.println(t1拿到了两把锁);}}});Thread t2 new Thread(()-{synchronized (B) {// sleep 是给t1时间, 让t1能拿到 Atry {Thread.sleep(1000);}catch (InterruptedException e) {e.printStackTrace();}//尝试获取A, 并没有释放 Bsynchronized (A) {System.out.println(t2拿到了两把锁);}}});t1.start();t2.start();} } 程序没有任何输出结果: 3. 解决死锁问题 为了避免死锁问题可以采取以下策略 避免使用多个锁尽量减少使用多个锁如果必须使用多个锁确保获取锁的顺序是一致的以减少死锁的可能性。加锁顺序多个线程获取锁的顺序要保持一致避免出现循环等待条件。加锁时限在获取锁的时候设置超时时间如果一段时间内没有获取到锁就放弃当前的操作释放已经持有的锁避免长时间等待导致死锁。死锁检测通过监控线程的状态和资源的使用情况及时检测并解决潜在的死锁问题。 对于死锁例子, 我们可以使两个线程的取锁顺序保持一致: package thread;public class ThreadDemo22 {public static void main(String[] args) {Object A new Object();Object B new Object();Thread t1 new Thread(()- {synchronized (A) {// sleep 是为了t2时间, 让t2也能拿到 Btry {Thread.sleep(1000);}catch (InterruptedException e) {e.printStackTrace();}//尝试获取B, 并没有释放 Asynchronized (B) {System.out.println(t1拿到了两把锁);}}});Thread t2 new Thread(()-{synchronized (A) {// sleep 是给t1时间, 让t1能拿到 Atry {Thread.sleep(1000);}catch (InterruptedException e) {e.printStackTrace();}//尝试获取A, 并没有释放 Bsynchronized (B) {System.out.println(t2拿到了两把锁);}}});t1.start();t2.start();} }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何选择网站关键词响应式网站建设公司

一、分析介绍 MoviePy是一个用于视频编辑和处理的Python库。它提供了一种简单而直观的方式来创建、编辑和合成视频,同时也支持添加音频和图像。 以下是MoviePy的一些主要功能和用法示例: 创建视频剪辑: from moviepy.editor import VideoFi…

做电影网站需要外贸展示型网页设计

近期开发一个在线坐席的功能。发现推送的消息中空格变成了 。查询发现URLEncoder.encode的问题。曾经用的时候也没注意过,解决的方法网上是对URLEncoder.encode的之后的字符串进行替换号,这样的方式假设真的有号那也被替换了。所以应该在URLEncoder.enco…

优惠劵网站怎么做walker wordpress

前言 图像经过算子处理后得到若干特征点,使用opencv进行渲染显示出这些特征点并且连线,更直观的对比处理前后的一些差异性 demo核心代码 //画出特征点并连线 void drawFilterLinePoints(cv::Mat& srcMat, cv::Point2f pointStart, cv::Point2f po…

网页游戏中心大全下载优化大师app

我们了解RobotFramework编写自动化测试用例的方法,了解如何将用例在Jenkins上运行。 但是,随着用例的增多,传统的pybot/robot命令运行测试用例会耗费大量的时间,这就慢慢成为了一个苦恼的问题。 那么,在Jenkins上如何…

蒙自市建设局网站驻马店seo

语句 // 单行注释 /* */ 多行注释 #include 头文件引入声明 #define 预先定义 return 结果返回语句(可以带参数,也可不带参数) printf(); 输出 if 条件语句 else 条件语句否定分支(和 if 连用&a…

在线阅读网站开发软件开发培训机构学费

简介: 低代码将成为B端服务领域的基础设施,必将颠覆传统开发方式,未来可期。 作者:天晟 前言 大家好,我是钉钉宜搭前端一个小团队的负责人天晟,在阿里做了五年的低代码。今天的分享我们不讲技术细节&…

如何构建网站跨境电商erp选哪个好

不知道大家还记不记得之前小编我推荐的最好用的iOS音乐播放器,如果没看过,可以点击这里。既然之前介绍了一款iOS端的音乐播放器给大家,那么今天就介绍一款iOS端十分好用的万能解码的视频播放器。使用iPhone的用户都明白,iPhone自带…

网站建设字体变色代码电商类网站有几个主流程

简介 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。 TFTP和FTP的区别 安全性区别 FTP支持登录安全&…

做微商海报的网站创意设计海报

<?php //此文件用于快速测试UTF8编码的文件是不是加了BOM&#xff0c;并可自动移除 //By Bob Shen $basedir"."; //修改此行为需要检测的目录&#xff0c;点表示当前目录 $auto1; //是否自动移除发现的BOM信息。1为是&#xff0c;0为否。 //以下不用改动 if ($dh…

企业网站建设有哪些优势青海餐饮网站建设公司

MySQL优化第二篇 性能分析小表驱动大表慢查询日志日志分析工具mysqldumpslow Show Profile进行SQL分析&#xff08;重中之重&#xff09; 七种JOIN 1、inner join &#xff1a;可以简写为join&#xff0c;表示的是交集&#xff0c;也就是两张表的共同数据 sql语句&#xff1a…

网站建设小程序开发seo推广网站开发工程师月薪平均

CSRF攻击(2), 绕过Referer防御 一. 场景: 攻击服务器: 192.168.112.202 目标服务器: 192.168.112.200说明: 1. 前端页面的功能是修改密码. 2. 将恶意页面放到202服务器上, 在目标200服务器上访问恶意页面, 目的是绕过200服务器上对CSRF的防御, 修改密码. 二. 后端防御代码: …

网站要怎样建设简单的企业网站的主页

1. 题目 实现一个带有buildDict, 以及 search方法的魔法字典。 对于buildDict方法&#xff0c;你将被给定一串不重复的单词来构建一个字典。 对于search方法&#xff0c;你将被给定一个单词&#xff0c;并且判定能否只将这个单词中一个字母换成另一个字母&#xff0c;使得所…

网站建设与维护试卷 一网站建设费应怎样做会计分录

一、效果图&#xff1a; 点击左侧地址列表&#xff0c;右侧地图跟着改变。 二、代码实现&#xff1a; 一进入页面时&#xff0c;通过body调用onLoad"onLoad()"函数&#xff0c;确保地图正常显示。 <body onLoad"onLoad()"><!--左侧代码-->…

宿迁网站制作网站空间到期提示

文章目录 什么是零拷贝3、零拷贝优化方案 - 真正的零拷贝哪些地方会用到零拷贝技术 现在来谈谈零拷贝&#xff0c;以及在开发中哪些地方使用到零拷贝。 开干… 什么是零拷贝 零拷贝指的是&#xff0c;从一个存储区域到另一个存储区域的copy任务无需CPU参与就可完成。零拷贝的底…

给别人做网站被诉侵权做网站运营的女生多吗

142-常用类与基础API-String的理解与不可变性_哔哩哔哩_bilibili 1.String 2.字符串常量池 变更储存区的原因是加快被gc的频率 比地址&#xff0c;equals比内容 3.字符串连接 s3s4都是字符串常量&#xff0c;后面几个会利用StringBuilder的toString&#xff08;&#xff09;&a…

做网站怎么查看来访ip参考消息今天新闻

这段Python代码使用了schedule库来安排一个任务&#xff0c;在每天的22:50时运行。这个任务执行一个命令来运行pytest&#xff0c;并生成一个报告。 代码开始时将job_done变量设为False&#xff0c;然后运行预定的任务。一旦任务完成&#xff0c;将job_done设置为True并跳出循…

网站建设:中企动力资阳房地产网站建设

在Go语言中进行HTTP请求时&#xff0c;http.Header对象表示HTTP请求或响应的头部信息。http.Header是一个map[string][]string类型的结构&#xff0c;用于存储键值对&#xff0c;其中键表示HTTP头字段的名称&#xff0c;值是一个字符串切片&#xff0c;可以存储多个相同名称的头…

网站首页界面设计网站后台 用什么编写

题目描述 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 l < i < r&#xff0c;都有 nums[i] < nums…

做网站数据需求分析dw怎么做phpcms网站

1.urllib2/urllib实现urllib2和urllib是Python中的两个内置模块&#xff0c;要实现HTTP功能&#xff0c;实现方式是以urllib2为主&#xff0c;urllib为辅。1.1首先实现一个完整的请求与响应模型urllib2提供一个基础函数urlopen&#xff0c;通过向指定的URL发出请求来获取数据。…

怎么查看网站空间大小文化传媒网站php源码

面试智力题 二进位bit1. 题目&#xff1a;一千杯水&#xff0c;一杯水有毒&#xff0c;怎么用10只老鼠&#xff0c;把这杯水找出来&#xff08;1&#xff09;解法1&#xff1a;常规法&#xff08;2&#xff09;bit法&#xff08;位数法&#xff09; (3) 时间法三级目录 二进位b…