介绍
今天就跟大家聊聊有关怎么在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中实现多线程死锁有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。