php网站开发需要学哪些兰州网站建设索王道下拉

张小明 2026/1/3 8:28:57
php网站开发需要学哪些,兰州网站建设索王道下拉,做网站网站建设专业公司哪家好,高清街景地图app01-死锁的概念 死锁是指两个或两个以上的线程在执行过程中#xff0c;因抢夺资源而造成的一种互相等待的现象#xff0c;若无外力干涉#xff0c;则它们无法再继续推进下去 02-产生原因 系统资源不足进程运行推进顺序不合适系统资源分配不当 03-常见死锁场景与示例 3.1 嵌…01-死锁的概念死锁是指两个或两个以上的线程在执行过程中因抢夺资源而造成的一种互相等待的现象若无外力干涉则它们无法再继续推进下去02-产生原因系统资源不足进程运行推进顺序不合适系统资源分配不当03-常见死锁场景与示例3.1嵌套锁顺序不一致public class DeadLockDemo { static Object a new Object(); static Object b new Object(); public static void main(String[] args) { new Thread(() - { synchronized (a){ System.out.println(t1线程持有a锁试图获取b锁); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (b){ System.out.println(t1线程获取到b锁); } } },t1).start(); new Thread(() - { synchronized (b){ System.out.println(t2线程持有a锁试图获取a锁); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (a){ System.out.println(t2线程获取到a锁); } } },t2).start(); } }分析t1线程执行先获取a锁再请求b锁t2线程执行先获取b锁再请求a锁可能形成循环等待3.2动态锁顺序死锁public void transfer(Account from, Account to, int amount) { synchronized (from) { synchronized (to) { from.withdraw(amount); to.deposit(amount); } } }分析如果两个线程同时调用transfer()但参数顺序相反线程Atransfer(account1, account2, 100)线程Btransfer(account2, account1, 200)可能产生死锁3.3资源死锁如线程池任务相互等待ExecutorService executor Executors.newFixedThreadPool(2); Future? future1 executor.submit(() - { Future? future2 executor.submit(() - System.out.println(Task2)); future2.get(); // 等待任务2完成 }); future1.get(); // 等待任务1完成分析线程池只有两个线程任务1提交任务2并等待任务2完成任务2等待线程池空闲若任务2无法执行任务1也无法完成形成死锁04-如何避免死锁4.1 固定锁顺序始终按全局一致顺序获取锁public void transfer(Account a, Account b, int amount) { Object firstLock a.id b.id ? a : b; Object secondLock a.id b.id ? b : a; synchronized (firstLock) { synchronized (secondLock) { // 操作 } } }4.2使用超时机制用tryLock()替代synchronized设置超时时间if (lock1.tryLock(100, TimeUnit.MILLISECONDS)) { try { if (lock2.tryLock(100, TimeUnit.MILLISECONDS)) { try { // 操作 } finally { lock2.unlock(); } } } finally { lock1.unlock(); } }4.3 避免嵌套锁尽量只持有一个锁或 将多个锁封装为一个大锁05-如何排查死锁5.1 纯命令jps -l— 相当于 java ps -ef -l —查看本地系统中所有正在运行的 Java 进程jstack 进程编号—查看进程堆栈信息5.2 图形化jconsole —win R 输入 jconsole连接对应的Java进程点击线程点击检测死锁即可查看
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

河北软件开发网站建设福州企业网站建设推广

Docker Swarm:实现应用集群化部署与管理 在当今的应用开发与运维领域,为了实现更高的可用性和可扩展性,将服务部署到多个主机上已成为常见需求。Docker Swarm 作为 Docker 原生的集群化技术,为容器化应用的部署和管理提供了强大的支持。本文将深入探讨 Docker Swarm 的相关…

张小明 2026/1/2 16:33:14 网站建设

通辽市做网站公司怎么做网站图标

GitHub星标超10K!PyTorch-CUDA-v2.7镜像为何如此受欢迎? 在深度学习项目开发中,你是否经历过这样的场景:刚拿到一台新服务器,兴致勃勃准备训练模型,结果花了整整一个下午才配好PyTorch、CUDA和cuDNN——不…

张小明 2026/1/2 12:56:55 网站建设

泰安网站制作服务网络营销形式

HAXM 安装失败?别急,一文搞懂虚拟化配置全流程 你是不是也曾在启动 Android 模拟器时,突然弹出一个红色警告:“ HAXM is not installed ”?点“OK”后模拟器慢得像老牛拉车,甚至根本打不开。这时候很多人…

张小明 2026/1/2 16:46:39 网站建设

垂直网站建设网页空间

北航矩阵理论期末真题:快速获取与高效复习指南 【免费下载链接】矩阵理论期末试卷北航资源下载分享 矩阵理论期末试卷(北航)资源下载 项目地址: https://gitcode.com/Open-source-documentation-tutorial/88e5f 想要顺利通过北航矩阵理…

张小明 2026/1/2 16:28:11 网站建设

旅游网站制作代码网站官网域名要多少钱

MySQL 8.0.16 JDBC驱动:为什么它成为Java开发者的首选连接方案? 【免费下载链接】MySQL8.0.16版本JDBC驱动Jar包下载 本仓库提供 MySQL 8.0.16 版本的 JDBC 驱动 Jar 包下载。该 Jar 包是用于 Java 应用程序与 MySQL 数据库进行连接的必备组件。通过使用…

张小明 2026/1/2 16:35:32 网站建设

站长检测同ip网站很多怎么办海外域名平台

沉浸式学习开发完全指南:从零基础到项目实战 【免费下载链接】OpenCourseCatalog Bilibili 公开课目录 项目地址: https://gitcode.com/gh_mirrors/op/OpenCourseCatalog 想要踏入AR/VR应用开发的世界却找不到合适的学习路径?OpenCourseCatalog项…

张小明 2026/1/2 22:32:14 网站建设