- 浏览: 166452 次
- 性别:
- 来自: weihai
文章分类
最新评论
-
grylls:
蠢逼,也是醉了
JPA2.0使用Map (1) 单向一对多,令人湿望的EclipseLink -
spring_springweb:
java swing demo源代码下载:http://www ...
Java Swing: 为JButton设置ctrl 快捷键 -
li346985170:
...
Eclipse新建类中自动添加author. -
li346985170:
前辈好,请问问题解决了吗? 我也遇到这个问题了,劳烦前辈指导指 ...
HSSFCell的setCellType不好使? -
abeautifulday:
你也太happy了。
更改 .java 文件的编码格式
这只是一篇附注,请看博客文章 怎么写,程序才能死锁? http://keating.iteye.com/blog/983365
参考1,线程死锁
参考2,DatabaseConnection类
参考1,线程死锁
Thread1 | Thread2 | |
目的 | 获取i | 获取j |
步骤 | 获取i | 获取j |
等待j被释放,获取j | 等待i被释放,获取i | |
释放i | 释放j |
public class NewClass { boolean i = false; boolean j = false; public void begin() { Thread t1 = new Thread(new Thread1()); Thread t2 = new Thread(new Thread2()); t1.start(); t2.start(); } public static void main(String[] args) { new NewClass().begin(); } class Thread1 implements Runnable { /** * 目的:获取j * * 步骤: * 获取i, * 等待j被释放,获取j * 释放i */ public void run() { // 获取i i = true; // 休息一下,让另一个线程充分占有j try { Thread.sleep(1000); } catch (InterruptedException ex) { ex.printStackTrace(); } // 等待j被释放,获取j while (j) { } j = true; // 释放i i = false; } } class Thread2 implements Runnable { /** * 目的:获取i * * 步骤: * 获取j, * 等待i被释放,获取i * 释放j */ public void run() { // 获取j j = true; // 等待i被释放,获取i while (i) { } i = true; // 释放j j = false; } } }
参考2,DatabaseConnection类
public class DatabaseConnection { private Connection con = null; private Statement stat = null; private PreparedStatement pstat = null; private ResultSet rs = null; public Connection con () { return con; } private void createConnection() throws Exception { try { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); } catch (InstantiationException ex) { Logger.getLogger(DatabaseConnection.class.getName()).log(Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { Logger.getLogger(DatabaseConnection.class.getName()).log(Level.SEVERE, null, ex); } StringBuilder sd = new StringBuilder("jdbc:sqlserver://"); sd.append("localhost:1433;DatabaseName="); sd.append("FWDMS");//database name String url = sd.toString(); DriverManager.setLoginTimeout(10);//设置连接超时为10秒 con = DriverManager.getConnection(url, "sa", "sa"); } catch (Exception ex) { throw new Exception(ex.getMessage()); } } public static DatabaseConnection newInstance() throws Exception { DatabaseConnection dc = new DatabaseConnection(); dc.createConnection(); return dc; } public ResultSet query(String sql) { try { stat = con.createStatement(); rs = stat.executeQuery(sql); } catch (Exception ex) { Logger.getLogger(DatabaseConnection.class.getName()).log(Level.SEVERE, null, ex); } return rs; } public void update(String sql) { try { stat = con.createStatement(); stat.executeUpdate(sql); } catch (Exception ex) { Logger.getLogger(DatabaseConnection.class.getName()).log(Level.SEVERE, null, ex); } } public void update(String sql, String[] args) { try { pstat = con.prepareStatement(sql); for (int i = 0; i < args.length; i++) { pstat.setString(i + 1, args[i]); } pstat.executeUpdate(); } catch (Exception ex) { Logger.getLogger(DatabaseConnection.class.getName()).log(Level.SEVERE, null, ex); } } public void close() { //check null,then close rs,stat,pstat and con. try { if (rs != null) { rs.close(); } if (stat != null) { stat.close(); } if (pstat != null) { pstat.close(); } if (con != null) { con.close(); } } catch (SQLException ex) { Logger.getLogger(DatabaseConnection.class.getName()).log(Level.SEVERE, null, ex); } } }
发表评论
-
ME*****
2012-03-06 22:23 0I'm friendly, easy to talk to a ... -
备份ubuntu ip
2012-03-05 16:55 0auto lo iface lo inet loopback -
lombok的canEqual/equals
2011-11-22 17:22 2217public boolean equals(Objec ... -
getReference
2011-08-16 10:55 1111Get an instance, whose state ma ... -
重写equals hashCode()
2011-05-28 22:59 0@Override public bool ... -
Container managed entity manager
2011-05-02 19:07 0严重: Exception while preparing t ... -
再立把志
2011-04-25 21:38 36今天又受打击了,给项目组建议用lombok被否定了,之前主张的 ... -
Netbeans win7下中文乱码
2011-04-22 13:57 0文件:C:\Program Files\NetBeans 7. ... -
java自定义排序
2011-04-14 10:44 0@Override public Combo sel ... -
JEE原版的登录???
2011-04-09 21:01 0JEE原版的登录??? -
国际化,以及解决clone问题???
2011-04-09 21:01 0国际化,以及解决clone问题??? -
ThreadLocal ???
2011-04-09 21:00 0ThreadLocal ??? -
一次重构的经历
2011-04-07 07:45 0第一部分,为神马重构? 我们领导貌似不会提议让我们大面积重构 ... -
断电,执行了一半的事务怎么办?
2011-04-06 13:26 0断电,执行了一半的事务怎么办? 可以用程序模拟一下。 -
instanceof ?
2011-04-06 10:05 0instanceof ? -
怎么写,程序才能死锁?
2011-04-05 17:03 3636若不了解线程,事务,死锁相关的基础知识,请先去了解一下,一点点 ... -
JPA 主键生成与May框架冲突
2011-03-23 16:41 0JPA 主键生成与May框架冲突 -
JPA 使用明细
2011-03-22 10:55 0引用<?xml version="1.0&qu ... -
以is作为名称开头的属性,它的Getter方法名应该是什么样的?
2011-03-21 22:47 1110--> private String isAbc; ... -
spring 单元测试
2011-03-21 18:20 0spring 单元测试
相关推荐
什么情况下Java程序会产生死锁?如何定位、修复?pdf中有介绍
35丨记一次线上SQL死锁事故:如何避免死锁?.html
监控进程状态,无界面、托盘图标。
如何理解3D动画中的欧拉角以及死锁?以及包含了自动驾驶学习资料集: 涵盖感知,规划和控制,ADAS,传感器; 1. apollo相关的技术教程和文档; 2. adas(高级辅助驾驶)算法设计(例如AEB,ACC,LKA等) 3. 自动驾驶...
什么是死锁 死锁是指多个进程因竞争资源而引起的一种僵局,如果没有外力作用,所有进程都不会向前推进。 举例:假如有线程Thread1和Thread2,两个都要访问共享资源AB,Thread1和Thread2一个先访问A再访问B,另一个先...
会出现死锁的情况产生死锁的4个必要条件:互斥:资源一次只允许一个session访问,其他session需要等待正在访问的事务结束。如何解决死锁通用的死锁解决方案
这种死锁是由于你的程序的BUG产生的,除了调整你的程序的逻辑别无他法 仔细分析你程序的逻辑, 1:尽量避免同时锁定两个资源 2: 必须同时锁定两个资源时,要保证在任何时刻都应该按照相同的顺序来锁定资源. ...
第7讲 进程死锁 2022/6/20 2 今日主题 什么是死锁?(了解) 死锁防止(熟悉) 死锁避免(掌握) 死锁检测和恢复(熟悉) [重点]:死锁必要条件、死锁防止、避免、检测和恢复 [难点]:银行家算法。 操作系统-死锁...
本文就什么是死锁?怎么找到死锁?怎么解决死锁?怎么避免死锁等问题展开分析,通过大量的代码和案例演示向大家描述死锁的前世今生。 快速到达看这里死锁是什么,有什么危害?写一个死锁的例子案例一:必然发生死锁...
设计模拟实现死锁避免的程序,要求: 1,输入并显示资源类型数,进程数,每类资源的个体数; 2,输入每个进程对每类资源的最大需求量,已分量,算出其剩余需求量。算出系统每类资源的当前剩余量;显示输入和计算出的...
基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip ...
Java多线程程序死锁检查 JCarder
死锁检测源代码
计算机操作系统第三版关于死锁的问题,程序代码
这是和死锁有关的问题,和简单的一个例子!
一、数据库死锁的现象 程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。 二、死锁的原理 当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提 交,另一条对于这一列...
车辆行驶死锁问题,在Linux下用C语言完成下面模型:设有一个T型路口,其中A,B,C,D各处可容纳一辆车,车型方向如图所示。找出死锁并用有序分配法消除之,要求资源编号合理。
查看 oracle 死锁程序 本程序可轻松查看oracle数据库是否有表锁死
(1)请设计一个程序演示死锁避免算法(银行家算法)。 (2)要求该演示程序可以指定任意的进程数量、资源种类、每种资源总数量(大于等于1)、已分配数量、最大需求数量,同时也可以随机生成上述数值进行模拟(随机...
从进程同步的概念可以知道,当并发进程需要竞争使用资源或需要相互协作向前推进时,如果不采取同步措施,或同步措施不恰当,则很容易导致并发进程不能向前推进而陷入僵局,即死锁现象。死锁是发生在一组相互竞争或...