对于变量,比如int eventNum=1;
线程在执行过程中, 会将主内存区的变量,拷贝到线程内存中, 当修改完a后,再将a的值返回到主内存中.这个时候,如果两个线程同时修改该变量,第三个线程在访问的时候...对于方法
为了保证线程间访问方法互斥, 用synchronized对线程访问方法,进行同步.保证线程顺序执行.即要将所有共通操作,放到一个加载器方法中,用synchronized同步....目前, 统计sdk状态是
多个线程同时执行数据库操作,
Timer拥有自己的单线程 执行数据库读取....要保证数据库使用的安全,一般可以采用如下几种模式
SQLite 采用单线程模型,用专门的线程/队列(同时只能有一个任务执行访问) 进行访问
SQLite 采用多线程模型,每个线程都使用各自的数据库连接...而且TimerTask是在子线程中,不会push服务不会阻塞主线程.
sdk整体框架调整
访问权限
sdk 对外暴露类和方法,要尽可能少.只暴露用户可操作的方法.隐藏其他细节.