Java 介绍避免死锁的几种常见方法
2017-08-15 13:57
176 查看
产生死锁的场景代码:
介绍避免死锁的几种常见方法:
1.避免一个线程同时获取多个锁。
2.避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。
3.尝试使用定时锁,使用locak.tryLock(timeout)来代替使用内部锁机制
4.对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况。
public class DeadLockDemo { private static String A="A"; private static String B="B"; public static void main(String[] args) { new DeadLockDemo().deadlock(); } private void deadlock() { Thread t1=new Thread(new Runnable() { @SuppressWarnings("static-access") @Override public void run() { synchronized(A){ try { Thread.currentThread().sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } synchronized(B){ System.out.println("1"); } } } }); Thread t2 =new Thread(new Runnable() { @Override public void run() { synchronized(B){ synchronized (A) { System.out.println("2"); } } } }); t1.start(); t2.start(); } }
介绍避免死锁的几种常见方法:
1.避免一个线程同时获取多个锁。
2.避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。
3.尝试使用定时锁,使用locak.tryLock(timeout)来代替使用内部锁机制
4.对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况。
相关文章推荐
- java避免死锁的常见方法代码解析
- JAVA如何避免死锁的几个常见方法
- 避免死锁的几种常见方法
- java中遍历map的几种方法介绍
- SQL Server中解决死锁的新方法介绍和C#中多线程避免并发
- Java 延时常见的几种方法
- Java实现几种常见排序方法(下) .
- Java实现几种常见排序方法(下)
- Java实现几种常见排序方法
- Java实现几种常见排序方法
- Java 延时常见的几种方法
- Java实现几种常见排序方法
- java中几种上传方法介绍、比较
- Java实现几种常见排序方法
- 现在将儿科常见几种病用蜂蜜的治疗方法介绍如下:
- 几种常见Ruby on Rails内置方法介绍
- 如何通过JAVA获取键盘输入值几种方法介绍
- Java简单实现几种常见排序方法
- Java实现几种常见排序方法(上)
- Java实现几种常见排序方法