注意锁标记是自己不会自动释放,必须有通知

Posted borter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注意锁标记是自己不会自动释放,必须有通知相关的知识,希望对你有一定的参考价值。

释放锁标记只有在Synchronized代码结束或者调用wait()。

注意锁标记是自己不会自动释放,必须有通知。

注意在程序中判定一个条件是否成立时要注意使用WHILE要比使用IF要严密。

WHILE会放置程序饶过判断条件而造成越界。

 

 1 package TomTexts;
 2 
 3 public class TomTexts_40 {
 4      public static void main(String args[])
 5      {
 6     try 
 7     {
 8     int i = args.length;
 9     System.out.println("i ="+i);
10     int j=5/i;
11     int k[]={ 1,2,3 };
12     k[5]=0;
13     }
14     catch(ArithmeticException e) 
15     {
16      System.out.println("被零除: " + e);
17     } 
18     catch(ArrayIndexOutOfBoundsException e) 
19     {
20      System.out.println("Array index out of bound exception: " + e);
21     }
22      System.out.println("执行catch块后的语句块");
23     }
24 
25 }

 

以上是关于注意锁标记是自己不会自动释放,必须有通知的主要内容,如果未能解决你的问题,请参考以下文章

Lock

Synchronized的使用和注意事项

C# 线程运行完之后自己会不会释放掉

java锁之wait,notify(wait会释放锁,notify仅仅只是通知,不释放锁)

lock和synchronized的同步区别与选择

多线程---线程间的通信