用于多线程间的同步,当一个线程调用方法进入 synchronized (syncLock) {
            int size = mViewCache.size();
            Log.d(TAG, "addToCache: index="+idx+", size = "+size+", view="+v);
            mViewCache.put(idx, new SoftReference<View>(v));
        }
后其他线程调用该方法或去他含synchronized (syncLock) {的方法都必须wait 到 synchronized (syncLock) {}里面的代码执行完

解决方案 »

  1.   

    可是在静态类函数里,实现synchronized(this) {}却不行,报Cannot use this in a static context
    原因是因为,静态类函数隶属类,它没有this。这该如何呢?
    public class FManager {
        /*
         * 函数介绍:保存log到日志文件
         * 输入参数:strLog字符串
         * 输出参数:无
         * 返回值  :无
         */
    public static void saveLogSD(String strLog) {
    Log.v(TAG, "saveLogSD enter");
      

  2.   

    静态函数,那就是应该用类级别的锁了,synchronized (FManager.class);或者在类里面用一个static的变量(private static Object syncObj = new Object();),然后synchronized(syncObj)即可。