同步不同步就要先说一下多线程
多线程可以使java同时执行多个任务,但是有时候就会产生不应该产生的错误,比如有个线程取出一个数作了修改,然后放回。就在同时,另一个线程近来读取这个数。这样,他读取的数将不是修改后的。所以出现了不一致的情况。
同步就是要解决这个问题,让这个数所在的方法设一个监视器,每次只能有一个线程暂时拥有它。这样就不会出现上面的情况了
用到同步的情况为你的方法要被多个线程同时访问。为了保持数据一致性而使用

解决方案 »

  1.   

    谢谢各位!再问一下:在编写代码时我们有用到hashtable和hashSet两个类,大家知道,hashtable是同步类,使用hashtable时,如果发生两个线程同时访问hashtable实例,则系统会抛出异常。而hashSet是非同步的,要让其同步必须在初始化时同步化,例如使用Synchronized等方法。我的问题是:如果不在初始化时对hashSet同步化,那么当两个线程同时访问hashSet实例的话,会发生什么问题?有异常抛出么,还是运行通过?