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

小程序后端数据库搭建账号seo是什么

小程序后端数据库搭建,账号seo是什么,河南省中招考生服务平台,无锡网站公司哪家好死锁的四个必要条件#xff1a;互斥、持有并等待、不可抢占、循环等待。 死锁场景是两个线程各自持有某个锁#xff0c;并试图获取对方持有的锁#xff0c;导致互相等待。 创建死锁示例代码 package io.renren.controller;import org.springframework.web.bind.annotation…死锁的四个必要条件互斥、持有并等待、不可抢占、循环等待。 死锁场景是两个线程各自持有某个锁并试图获取对方持有的锁导致互相等待。 创建死锁示例代码 package io.renren.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;/*** 通过jstack分析线程死锁场景*/ RestController public class DeadlockController {// 定义两个互斥锁对象private final Object lockA new Object();private final Object lockB new Object();GetMapping(/deadlock)public String triggerDeadlock() {new Thread(() - {synchronized (lockA) {System.out.println(Thread1 acquired lockA);try { Thread.sleep(100); }catch (InterruptedException e) {}synchronized (lockB) {System.out.println(Thread1 acquired lockB);}}}, Deadlock-Thread-1).start();new Thread(() - {synchronized (lockB) {System.out.println(Thread2 acquired lockB);try { Thread.sleep(100); }catch (InterruptedException e) {}synchronized (lockA) {System.out.println(Thread2 acquired lockA);}}}, Deadlock-Thread-2).start();return 死锁已触发检查控制台日志和线程状态;}} 访问端点触发死锁 http://localhost:8080/deadlock使用 jstack 分析 查找Java进程PID jps -l # 输出示例 # 12345 com.example.DeadlockDemoApplication生成线程转储 jstack -l 12345 thread_dump.txt分析线程转储 死锁分析图解 解决死锁的方案 方案1统一锁获取顺序 // 修改第二个线程的锁获取顺序 new Thread(() - {synchronized (lockA) { // 改为先获取lockASystem.out.println(Thread2 acquired lockA);try { Thread.sleep(100); } catch (InterruptedException e) {}synchronized (lockB) {System.out.println(Thread2 acquired lockB);}} }, Safe-Thread-2).start();方案2使用 tryLock 超时机制 //定义成员变量 private final ReentrantLock lock1 new ReentrantLock(); private final ReentrantLock lock2 new ReentrantLock();//在函数内部执行 new Thread(() - {try {if (lock1.tryLock(1, TimeUnit.SECONDS)) {try {System.out.println(Thread1 acquired lock1);Thread.sleep(100);if (lock2.tryLock(1, TimeUnit.SECONDS)) {try {System.out.println(Thread1 acquired lock2);} finally {lock2.unlock();}}} finally {lock1.unlock();}}} catch (InterruptedException e) {e.printStackTrace();} }).start();预防死锁的最佳实践 锁顺序统一所有线程的锁获取顺序 超时机制使用 tryLock() 替代内置锁 减少锁粒度避免在方法级别使用 synchronized 静态分析工具使用 FindBugs/SpotBugs 检测潜在死锁 压力测试使用 JMeter 模拟高并发场景 最后 实际开发中建议使用 ReentrantLock 等更灵活的工具替代 synchronized并配合 Arthas 等在线诊断工具进行实时分析。 ------------------------------------------------- jstack补充 ----------------------------------------------------- jstack命令用于打印指定Java进程、核心文件或远程调试服务器的Java线程的Java堆栈跟踪信息。 jstack命令可以生成JVM当前时刻的线程快照。线程快照是当前JVM内每一条线程正在执行的方法堆栈的集合生成线程快照的主要目的是定位线程出现长时间停顿的原因如线程间死锁、死循环、请求外部资源导致的长时间等待等。 如果java程序崩溃生成core文件jstack工具可以用来获得core文件的java stack和native stack的信息从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。 当指定的进程在64位Java虚拟机上运行时可能需要指定-J-d64选项例如:jstack -J-d64 -m pid。 该命令可能在未来的版本中不可用
http://www.pierceye.com/news/381405/

相关文章:

  • 文化传媒公司网站建设西渡网站建设
  • 购物网站为什么做移动端seo优化快速排名
  • iis服务器网站301重定向怎么做国家企业信息公开网查询系统
  • 免费家具网站模板做网站去什么公司好
  • 五个网站南宁网页制作培训
  • 枣庄建设网站wordpress如何自己编辑
  • 河南省城乡住房建设厅网站首页哪个公司网站备案快
  • 湘潭做网站价格优选磐石网络微信里怎么进入自己的公众号
  • 孟州网站wordpress主题游戏cms
  • 用php做的网站怎么上传莱州教体局网站
  • 网站互动性无锡模板建站
  • 中铁十六局工资明细沧州网站seo公司
  • 北京网站建设软件网页制作自我介绍源代码
  • 怎么注册公司的网站免费可以做旅游海报 的网站
  • 贵阳网站建设包首页微商建立网站
  • ppt制作软件全模板免费大连seo网站管理
  • 网站门户设计设计师的网站有哪些
  • 旅游公司网站建设百度一下官方下载安装
  • 网站上传大马后怎么做宁波seo推广公司电话
  • 长沙建网站培训机构织梦网站采集侠怎么做
  • 行政事业单位网站建设动漫设计与制作大学
  • 网站链接推广工具建立网站平台
  • 做网站需要学什么软件做网站智能工具
  • 成品网站代理上海的建设项目招投标在哪个网站
  • 阿里云的网站建设花钱么广州市建设职业培训学校网站
  • 网站建设和前端开发的区别哈尔滨网站制作方案
  • 改进网站的建议网易邮箱网页版
  • 南宁市做网站的公司新浪云能用wordpress
  • 网站建设品牌有哪些重庆seo排名收费
  • 发优惠券网站怎么做大连开发区做网站