你的位置:首页 > 软件开发 > Java > Java多线程(二) 多线程的锁机制

Java多线程(二) 多线程的锁机制

发布时间:2016-07-20 18:00:17
当两条线程同时访问一个类的时候,可能会带来一些问题。并发线程重入可能会带来内存泄漏、程序不可控等等。不管是线程间的通讯还是线程共享数据都需要使用Java的锁机制控制并发代码产生的问题。本篇总结主要著名Java的锁机制,阐述多线程下如何使用锁机制进行并发线程沟通。1、并发下的程序异 ...

      当两条线程同时访问一个类的时候,可能会带来一些问题。并发线程重入可能会带来内存泄漏、程序不可控等等。不管是线程间的通讯还是线程共享数据都需要使用Java的锁机制控制并发代码产生的问题。本篇总结主要著名Java的锁机制,阐述多线程下如何使用锁机制进行并发线程沟通。

1、并发下的程序异常

  先看下下面两个代码,查看异常内容。

  异常1:单例模式

Java多线程(二)  多线程的锁机制Java多线程(二)  多线程的锁机制
 1 package com.scl.thread; 2  3 public class SingletonException 4 { 5   public static void main(String[] args) 6   { 7     // 开启十条线程进行分别测试输出类的hashCode,测试是否申请到同一个类 8     for (int i = 0; i < 10; i++) 9     {10       new Thread(new Runnable()11       {12         @Override13         public void run()14         {15           try16           {17             Thread.sleep(100); 18           }19           catch (InterruptedException e)20           {21             e.printStackTrace();22           }23           System.out.println(Thread.currentThread().getName() + " " + MySingle.getInstance().hashCode());24         }25       }).start();26     }27   }28 }29 30 class MySingle31 {32   private static MySingle mySingle = null;33 34   private MySingle()35   {36   }37 38   public static MySingle getInstance()39   {40     if (mySingle == null) { mySingle = new MySingle(); }41     return mySingle;42   }43 }

原标题:Java多线程(二) 多线程的锁机制

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。