怎么在Java中实现多线程死锁

  介绍

今天就跟大家聊聊有关怎么在Java中实现多线程死锁,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Java的优点是什么

1。简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2。面向对象;3。分布性,Java是面向网络的语言;4。鲁棒性、java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。5。安全性,用于网络,分布环境下的Java必须防止病毒的入侵。6。体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7。可移植性、Java可以方便地移植到网络上的不同机器。8。解释执行,Java解释器直接对Java字节码进行解释执行。

具体如下:

package  com.damlab.fz;   public  class  DeadLock  {   public 才能;static  void  main (String [], args), {   ,,,Resource  r1 =, new 资源();   ,,,Resource  r2 =, new 资源();   ,,,//,每个线程都拥有r1, r2两个对象   ,,,Thread  myTh2 =, new  MyThread1 (r1, r2);   ,,,Thread  myTh3 =, new  MyThread2 (r1, r2);   ,,,myTh2.start ();   ,,,myTh3.start ();   ,,}   }   class  Resource  {   private 才能;int 我;   }   class  MyThread1  extends  Thread  {   private 才能;Resource  r1, r2;   public 才能;MyThread1 (r1, Resource  Resource  r2), {   ,,,this.r1 =, r1;   ,,,this.r2 =, r2;   ,,}   @Override才能   public 才能;void 运行(),{   ,,,while (真实),{   ,,,,,//,先获得r1的锁,再获得r2的锁   ,,,,,synchronized  (r1), {   ,,,,,,,System.out.println(“1号线程获取了r1的锁“);   ,,,,,,,synchronized  (r2), {   ,,,,,,,,,System.out.println(“1号线程获取了r2的锁“);   ,,,,,,,}   ,,,,,}   ,,,}   ,,}   }   class  MyThread2  extends  Thread  {   private 才能;Resource  r1, r2;   public 才能;MyThread2 (r1, Resource  Resource  r2), {   ,,,this.r1 =, r1;   ,,,this.r2 =, r2;   ,,}   @Override才能   public 才能;void 运行(),{   ,,,while (真实),{   ,,,,,//,先获得r2的锁,再获得r1的锁   ,,,,,synchronized  (r2), {   ,,,,,,,System.out.println(“2号线程获取了r2的锁“);   ,,,,,,,synchronized  (r1), {   ,,,,,,,,,System.out.println(“2号线程获取了r1的锁“);   ,,,,,,,}   ,,,,,}   ,,,}   ,,}   }

运行结果:

怎么在Java中实现多线程死锁

看完上述内容,你们对怎么在Java中实现多线程死锁有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

怎么在Java中实现多线程死锁