-
背景 之前有介绍过jwt(JSON Web Token),感兴趣的可以查看。本期以实际的AppleId登录集成为例,介绍下jwt的应用,对于需要集成AppleId登录的开发者也有一定帮助。目前(2020年11月),苹果已要求在APP提...
-
背景 jwt全称是JSON Web Token,用来做数据的校验,通过一个具体的json结构,作为信息的载体,定义标准(RFC7519),用来验证数据的准确和完整性。其所携带的信息,一般比较少,主要用来做身份认证。目前接触到的有在Ap...
-
**线程安全:**当多个线程访问一个对象时,如果不需要考虑运行时环境下的调度和交替执行,也不需要额外的同步,以及在调用方不需要任何的协调操作,调用这个对象的行为都能获得正确的结果,则称这个对象是线程安全的。 1. Java中线程安全的...
-
回顾JVM的内存分配包括程序计数器,虚拟机栈,本地方法栈,JAVA堆和方法区5部分,其中前三是属于线程私有的,内存分配和回收有确定性,不多考虑回收的问题,因为线程或者方法结束时,内存自然回收。相对的,在JAVA堆和方法区里,需要注意内...
-
先上图 1.程序计数器 较小的一块内存,可以看作当前线程执行的字节码的行号指示器,字节码解释器通过这个计数器的值选择下一条需要执行的字节码指令,分支,循环,异常处理,线程恢复都依赖此。属于线程私有。 2.虚拟机栈 属于线程私有,与线程...
-
线程是比进程轻量级的调度执行单位,线程可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址,文件IO等),又可以独立调度,是CPU调度的基本单位 1. 线程实现的方式 1. 内核线程实现 直接由操作系统内核来支...
-
背景 JNI 全称是Java Native Interface ,用来实现java对c/c++等编译方法的调用。常见如Jdk Object Thread 等类中也有许多基于jni的Native方法,还有一些与硬件、操作系统直接交互或者...
-
背景 最近有接触很多的中间件源码,注意到部分的循环都写成了for(;;),说实话以前也有注意过。在平常自己写业务代码很多死循环用的是while(true),有点沿袭写C语言时候用的while(1)。查找资料后发现这两种在某些情况下是有...
-
背景 之前有通过java实现一个模拟redis的服务端,本期将以上次的网络模型为基础,再添加并发处理,实现一个支持http的服务端,并使用ab(Apache Benchmark)做性能的测试。 描述 如果要理解流程需要对http协议有...
-
背景 相信有不少人遇到过线上业务出现问题,为排查导出线上业务堆栈,但是最后发现导出的堆栈文件过大,少则2-3G,多则10GB大小,无法直接分析,这时候有点束手无策。本期的文章,就以如上描述的场景为例子,简单介绍下对于超大的堆栈,如何进...