从广义角度考虑:
1. 局部变量:
作用域:方法体内,线程安全
2. 线程变量:
用法:在需要多thread的类中
private static ThreadLocal<Object> threadLocal = new ThreadLocal<Object>();
threadLocal.set(new Object());
threadLocal.get();
作用域:thread内,线程安全,例如android中的MessageQueue
3. 进程变量:
用法:类中非final的field,static变量可以class对象锁,非static变量可用this对象锁;
作用域:process,进程安全,并发需同步
4. 文件、共享内存、binder、socket:用于IPC
需补充