解决方案 »

  1.   

    Java里原子数,比你加锁效率高,AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。
      

  2.   

    考虑集群,这个M可以放到集中式缓存MemCached中
      

  3.   

    用memcached的cas或者incru来代替atomicInteger的自增
      

  4.   

    考虑集群,这个M可以放到集中式缓存MemCached中MemCached 可以用在高并发情况下?
      

  5.   

    考虑集群,这个M可以放到集中式缓存MemCached中MemCached 可以用在高并发情况下?
    妥妥的,我刚做了个每秒五六千并发的系统,用的就是MC,非常稳定
      

  6.   

    主要是没有考虑集群的问题,你去锁这个M,很快M就会成为瓶颈,就算你放在memcache里,也会成为瓶颈。如果是单点,那么并发一上来,瓶颈很快就出现了,如果是放在memcache里,涉及到的分布式数据问题也会比较头疼,而且也是单点加锁,这个瓶颈比JVM加锁可能要好点,但是估计也会有问题,这个你可以测一下。第三步里面会产生数据一致性的问题。
      

  7.   


    互斥不就是为了线程安全么?
    已经安全了为什么还要互斥什么的...不懂啊~看错了,volatile 是那种不是互斥的