- 博客(4)
- 收藏
- 关注
原创 Flutter框架下实现用户行为埋点
用户行为埋点主要是为了采集用户对APP的功能使用情况,包括统计用户的活跃度,用户画像的刻画等等,以明确产品功能的开发、优化方向。我们借助神策数据开源的SDK来实现埋点,这里还需要自己实现服务端数据接收服务;接收到数据后,我们解析后就可以进而加工成符合我们要求的格式,直接存储到数据库或导入其他现有的平台进行后续的用户行为分析、监控等等。
2023-09-28 10:05:46
1214
原创 ThreadLocal在线程池下使用注意事项
ThreadLocal可以用于保存线程本地变量,在线程之间需要进行数据隔离并保存上下文信息的场景下非常有用。但是实际项目中,往往是在线程池环境下的。比如一个web项目,多个客户端请求的处理往往是借助线程池处理的,并不是给每个请求单独new一个新线程,处理完再销毁;所以这里就存在线程的复用。在线程会被复用的背景下,我们在使用ThreadLocal进行操作时,要特别注意:在进行set操作后,是否在线程结束之前进行了remove操作在进行get操作时,是否在此前已本线程进行了set操作我们假设线程A
2022-02-28 14:53:02
600
原创 volatile关键字使用注意事项
volatile不能保证原子性众所周知,volatile一般用于修饰多线程场景下的公共变量。假设我们有一个公共变量incprivate static volatile int inc;要注意的是,volatile保证的变量i的可见性,也就是各个线程在读取inc时,都能读取到inc变量在主存上的最新值(换句话说,避免“脏读”)。但是,volatile是不能保证在多个线程同时修改inc时的原子性。我们通过一段程序来验证:public static void main(String[]
2021-01-11 17:40:01
316
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人