首先我们先看一个段非常有代表性的代码,里面一口气牵扯到了多态和类初始化顺序知识。 它的输出是: 父类构造器 子类的process 0 1 子类构造器 子类的process 13 14 我想现在你一定很困惑,不要慌上车!带你了解底层的原理 为什么会调用子类的process()方法? 这里的底层原理是J ...
分类:
其他好文 时间:
2018-07-28 00:18:28
阅读次数:
206
一、简介 ThreadLocal从字面上进行理解很容易被大部分人认为是本地线程,然而ThreadLocal并不是一个Thread,可以说它只是一个容器,而它装的内容又是Thread的局部变量。很多文章都会把ThreadLocal当作是解决高并发下线程不安全的一种做法,然而ThreadLocal并不是 ...
分类:
编程语言 时间:
2018-07-25 23:55:50
阅读次数:
224
1:对进行分配内存的动作进行同步处理-实际上虚拟机采用CAS配上失败重试的方式保证更新操作的原子性。 2:把内存分配的动作按照线程划分在不同的空间之中进行,即每个线程预先在JAVA堆中预先分配一小块内存,称为本地线程分配缓存(TLAB)。 哪个线程要分配内存,就在哪个线程的TLAB上进行分配。只有在 ...
分类:
其他好文 时间:
2018-07-22 17:09:58
阅读次数:
164
context(上下文)是flask里面非常好的设计,使用flask需要非常理解应用上下文和请求上下文这两个概念 本地线程 本地线程(thread local)希望不同的线程对于内容的修改只在线程内部发挥作用,线程内部互相不影响 可以看到,在线程的内部修改了mydata.number的值,但是没有影 ...
分类:
编程语言 时间:
2018-07-20 14:03:57
阅读次数:
203
前言:工作中将要使用ThreadLocal,先学习总结一波。有不对的地方欢迎评论指出。 定义 ThreadLocal并不是一个Thread,而是Thread的局部变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始 ...
分类:
编程语言 时间:
2018-06-26 23:43:09
阅读次数:
252
1、在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User)。 任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemo ...
分类:
编程语言 时间:
2018-05-17 18:23:40
阅读次数:
196
基本流程概述 request 与 session LocalStack类与Local类 Local类 是flask模仿threading.Local实现的一个本地线程,内部的self.__storage__封装了一个字典,用来存放每一个请求对应线程的私有数据数据,保证了每一个请求之间的数据隔离。 他 ...
分类:
其他好文 时间:
2018-04-27 19:56:51
阅读次数:
197
关于对象,我们需要面对的问题主要有对象的创建,对象在内存中的布局,对象的结构,对象的访问定位。 对象的创建 对象的创建过程如下图所示: 其主要步骤有:给对象分配内存,初始化对象,执行构造方法。 在对象创建过程中出现的线程安全性问题由线程同步和本地线程分配缓冲来解决 对象在内存中的布局 a、指针碰撞 ...
分类:
其他好文 时间:
2018-04-24 17:33:50
阅读次数:
148
1.基本内存分批策略 大多数情况在新生代Eden区分配,如果启动了本地线程分配缓冲,将按线程优先在TLAB(线程私有缓冲区)上分配.当Eden区域没有足够的空间时将发起一次Minor GC. 值得注意的是,如果一个对象过大(例如分配了一个大的byte[]数组),该对象将直接进入老年代..因为对象过大 ...
分类:
其他好文 时间:
2018-03-16 17:18:25
阅读次数:
130
Flask session,request,current_app的传递 flask的 request, session 和 current_app 都是 设置方式比较新颖 通过上下文管理的方式实现的 每次请求进来app.run调用 call 方法, 创建 一个本地线程(唯一标识作为键) 然后把实例 ...
分类:
移动开发 时间:
2018-03-11 19:19:04
阅读次数:
274