当前位置:   article > 正文

Java并发编程--死锁及模拟银行转账实现_并发安全银行转账java demo

并发安全银行转账java demo

死锁DeadLock

死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

  1. public class Lock {
  2. private static Object obj1 = new Object();
  3. private static Object obj2 = new Object();
  4. public static void main(String[] args) {
  5. new Thread(() -> {
  6. try {
  7. while (true) {
  8. synchronized (obj1) {
  9. System.out.println("lock obj1 thread:" + Thread.currentThread().getName());
  10. Thread.sleep(3000);
  11. synchronized (obj2) {
  12. System.out.println("lock obj2 thread:" + Thread.currentThread().getName());
  13. Thread.sleep(3000);
  14. }
  15. }
  16. }
  17. }
  18. catch (Exception e) {
  19. }
  20. }
  21. ).start();
  22. new Thread(() -> {
  23. try {
  24. while (true) {
  25. synchronized (obj2) {
  26. System.out.println("lock obj2 thread:" + Thread.currentThread().getName());
  27. Thread.sleep(3000);
  28. synchronized (obj1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/574668
推荐阅读
相关标签
  

闽ICP备14008679号