移动开发

ThreadLocal--以副本的方式解决并发以及隔离问题

不论是Atomic还是synchronized或者Lock,其实都是采用同步的方式(串行或者自旋等)解决了线程安全问题。这里我们将介绍另外一种解决线程安全问题的思路----副本的方式。 如果你有一个全局共享的变量,那么多线程并发的时候,对这个共享变量的访问是不安全的。方法内的局部变量是线程安全的,由于每个线程都会有自己的副本。也就是说局部变量被封闭在线程内部,其它线程无法访问(引用型有所区别)。那

2023-03-22法条语言AI与GPT沟通(37

使用chatGPT进行日常咨询,提出问题是一个重要的步骤。但是,最关键的不只是提出问题,而是如何表达问题,以及如何与chatGPT进行交互和沟通。 以下是几点建议: 1. 确定需要咨询的领域或主题,以便chatGPT能够更好地理解你的问题,并为你提供相关的答案和建议。 2. 设定几个层次的问题,从宏观到微观,逐步深入探索问题的根源和解决方案。 3. 使用清晰、简洁、明确的语言,以便chatGP

Android-推荐一个RecyclerView悬浮头部(StickyItemDecoration)

图片来源网络,入侵必删 在日常Android列表开发当中,我们可能会遇到以下的需求: 我们在滑动列表的时候,头部View置顶不可以滑动. 我刚好看到有一个开源库可以帮我们快速实现,分享出来希望能提高看文章的小伙伴的开发效率. StickyItemDecoration StickyItemDecoration有两个特性: 粘性头部是放置在RecyclerView外面的View,对比

自定义Chronometer实现定时器

前言 在Android开发过程中,计时控件是经常回使用到的,在Android控件库中有一个能快捷实现计时功能的控件,它就是Chronometer,今天我们基于它自定义实现一个方便调用的计时控件TimeChronometer。 今天涉及知识有: Chronometer常用方法 TimeChronometer在Activity中使用 效果图和项目结构图 TimeChronometer源码 一

显示框架之app与SurfaceFlinger通信

SurfaceFlinger是android显示的核心进程,在整个显示框架中起到一个承上启下的作用,“承上”指的是与app进程间的通信,“启下”指的是与Composer进程的通信。Surfaceflinger本身不进行绘制,是app数据上屏的中枢通路,先来看下SurfaceFlinger在整个显示流程中的位置。 显示流程图.png 从显示流程图看可知,SurfaceFlinger位

Flutter-FlutterBloc的使用

BLOC说明 bloc 是一个可预测的状态管理库,有助于实现 BLoC 设计模式。简单和轻便,高度可测试,适用于 Dart、Flutter 和 AngularDart。 简单使用 声明自定义bloc类,继承于Bloc, 然后添加相应的事件对象和状态的处理(通过emit把新的状态反馈出去),如下: /// APP全局Bloc类 class AppGlobalBloc extends Bl

拦截器,过滤器,监听器

过滤器(Filter):当你有一堆东西的时候,你只希望选择符合你要求的某一些东西。定义这些要求的工具,就是过滤器。 拦截器(Interceptor):在一个流程正在进行的时候,你希望干预它的进展,甚至终止它进行,这是拦截器做的事情。 监听器(Listener):当一个事件发生的时候,你希望获得这个事件发生的详细信息,而并不想干预这个事件本身的进程,这就要用到监听器。 小结 过滤器 过

iOS知识复习笔记(16)---swift相关

一、函数的派发方式 swift函数的派发机制有三类:static直接派发(静态)派发、table函数派发,message消息派发。 直接派发也称为静态派发,指令集少,还会进行编译优化(函数内联) 2.函数派发是实现动态行为最常见的方式,通过函数表里面的数组来存储类声明的每个函数指针,称为vitual table, swift里叫witness table 3.消息派发其实就是oc那套消息发送了

iOS 底层原理39:Instruments系列(五)Leaks

iOS 底层原理 文章汇总 引言 iOS 5.0之后apple引入了Xcode编译器特性ARC(Automatic Reference Counting,自动引用计数)来帮助开发者管理内存,但为了追求app的高性能与减少安装包大小,工作中很多时候需要我们手动管理内存。再牛的开发者也不能保证自己写的code 100%没有内存泄露,出现内存泄露不可怕,可怕的是我们时间与精力花了大把,但内存泄露依旧

SAS编程-ADaM:Efficacy Analysis Flag的两种生成方法

临床试验会针对Efficacy Endpoints进行Efficacy分析,这些分析是针对特定的Efficacy Paramters。纳入Efficacy分析的人群,通常是基线以及基线后至少一次访视值不为空 (With non-missing values at baseline and at least on post-baseine visit)。 在SAP中,分析人群会有明确定义。在ADaM