能不能实现这样一个功能:把一个对象加入到Hash表或其他的集合类中,当有多个线程从集合类中取出对象后,这些线程对 对象的写操作自动被串行化(非并发)?

解决方案 »

  1.   

    加一个标志位.当有线程操作时,先检查该标志位只有当为false的时候才能操作,并把标志位置为true.完成后置为false.
      

  2.   

    不是序列化吧...
    是同步
    synchronized关键字
    可以同步方法,对象,或代码段
      

  3.   

    可以利用读写锁。不知道JDK1.6提供的ConcurrentHashMap有没有类似的机制。
      

  4.   


    class test {
    private Object obj; public void test1() {
      //doSomething **************  synchronized(this){
       //*************
       //锁住当前对象,只能由获得锁的线程访问,其他线程等待
       //doSomething
      } } public synchronized void test2() {
       //*************
       //锁住这个方法,只能由获得锁的线程访问,其他线程等待
       //doSomething
     } public void test3() {
      //doSomething **************  synchronized(obj) {
       //*************
       //锁住这个obj对象的访问,只能由获得锁的线程访问,其他线程等待
       //doSomething
      }
     }
    }
      

  5.   

    比如说一个对象。 
    XXobj=new XXClass 
    这个XXClass是别人写的,我控制不了他,所以无法让这个类生成的对象都有同步控制。 
    但是我想在多线程中使用这个类生成的对象,所以我恐惧。 
    然后,出现了一个对象的某个方法。 
    XXobj=ferly.YY(XXobj) 
    经过这样一个操作之后,任何线程调用XXobj的写属性,都自动被同步。 我现在需要的就是这样一个奇迹对象(ferly)。 我说明白了么?