对每个对象使用多”锁”的机制来增大并发。
一般每个对象都只有一个”锁”,这就表明如果两个线程执行一个对象的两个不同的同步方法时,会发生”死锁”。即使这两个方法并不共享任何资源。为了避免这个问题,可以对一个对象实行”多锁”的机制。如下所示:
- class foo
- {
- private static int var1;
- private static Object lock1=new Object();
- private static int var2;
- private static Object lock2=new Object();
- public static void increment1()
- {
- synchronized(lock1)
- {
- var1++;
- }
- }
- public static void increment2()
- {
- synchronized(lock2)
- {
- var2++;
- }
- }
- }
尽可能的使用static,final,private等关键字。
当复制大量数据时,使用System.arraycopy()命令。