- 浏览: 169973 次
- 性别:
- 来自: 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 2304public boolean equals(Objec ... -
getReference
2011-08-16 10:55 1152Get 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 3701若不了解线程,事务,死锁相关的基础知识,请先去了解一下,一点点 ... -
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 1162--> private String isAbc; ... -
spring 单元测试
2011-03-21 18:20 0spring 单元测试
相关推荐
本文将深入探讨如何使用C#来监控进程状态,包括监测程序是否崩溃和发生死锁,并讨论如何通过托盘图标进行无声的后台监控。 一、C#进程监控基础 在C#中,`System.Diagnostics`命名空间提供了一个名为`Process`的类...
35丨记一次线上SQL死锁事故:如何避免死锁?.html
如何理解3D动画中的欧拉角以及死锁?以及包含了自动驾驶学习资料集: 涵盖感知,规划和控制,ADAS,传感器; 1. apollo相关的技术教程和文档; 2. adas(高级辅助驾驶)算法设计(例如AEB,ACC,LKA等) 3. 自动驾驶...
理解死锁的概念对于编写高效、安全的并发程序至关重要。 在Java中,死锁的实例可以通过一个简单的代码示例来解释。考虑以下情况: ```java public class DeadThread { private Thread thread1; public Dead...
会出现死锁的情况产生死锁的4个必要条件:互斥:资源一次只允许一个session访问,其他session需要等待正在访问的事务结束。如何解决死锁通用的死锁解决方案
这类死锁通常是由于程序设计不当导致的,因此需要通过调整程序逻辑来解决。具体措施包括: 1. **减少资源锁定:** 尽可能避免同时锁定两个资源,减少并发操作中的锁冲突。 2. **统一锁定顺序:** 如果确实需要同时...
基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip ...
JCarder是Java中用于检测多线程程序死锁的一款工具,它可以帮助开发者识别和避免死锁问题,提升程序的稳定性和效率。 首先,我们需要理解死锁的基本概念。在Java中,死锁通常发生在多个线程之间,每个线程持有某些...
在这个程序示例中,我们看到一个模拟哲学家进餐问题的场景,这是经典的死锁例子,用于阐述操作系统中的并发控制和死锁预防策略。让我们深入探讨这个程序的各个组成部分以及它们与操作系统死锁相关的知识点。 首先,...
标题:一个简单的和死锁有关的程序 描述与分析: 本程序通过两个`DeadThread`线程类实例和两个`Test`对象实例演示了死锁(deadlock)现象。死锁是多线程编程中常见的一种问题,发生在多个线程相互等待对方释放资源...
MySQL数据库在处理并发事务时,可能会遇到一种特殊的情况,即死锁。死锁是指两个或多个事务在执行过程中,因争夺资源而造成的一种相互等待的现象,若无外力干涉它们将无法继续执行。死锁是数据库系统中常见的问题,...
- 理解如何在程序中表示这些信息,如使用数组或列表来存储这些数值。 2. **输入每个进程对每类资源的最大需求量、已分配量,计算剩余需求量以及系统每类资源的当前剩余量** - **知识点**: - 进程对资源的需求...
死锁检测源代码
进程、线程、死锁和POSIX规范的系统调用 进程是操作系统中一个独立的执行单元,它拥有自己的虚拟地址空间和系统资源。线程是轻量级的进程,它共享同一个进程的虚拟地址空间和系统资源。理解进程和线程的概念对于...
一、什么是 SQL 表死锁? SQL 表死锁是指在 SQL Server 中,一个或多个进程无法访问某个表或库,因为这些进程都在等待某个资源,而这个资源又被其他进程占用着。这种情况下,SQL Server 会超时,导致表或者库不可...
《微软SerialPort秘籍——深度剖析串口死锁与程序优化》 在.NET框架中,SerialPort类为我们提供了与串行端口进行通信的能力。然而,对于初学者和经验丰富的开发者来说,它隐藏的一些陷阱可能导致程序出现意想不到的...
7. 使用select 工作站名=hostname, 应用程序名=program_name, 工作站进程ID=hostprocess, 域名=nt_domain, 网卡地址=net_address命令来查询死锁的进程信息。 在解决SQL Server死锁时,需要注意以下几点: 1. 首先...
JCarder是一款用于检测Java多线程程序中死锁问题的工具,它可以帮助开发者识别和解决这类问题,确保程序的稳定运行。 首先,了解Java多线程中的死锁。在Java中,死锁通常发生在多个线程各自持有某些资源,并且都...