JUC包 AtomicInteger底层实现原理是什么?-->一个Unsafe操作获取内存地址,一个Volatile保证value的可见性,CAS进行重试。 原子更新方法:getAndIncrement-->Unsafe会利用value字段的内存地址偏移,直接完成操作 ? Atomic 包提供了最常 ...
分类:
编程语言 时间:
2020-05-01 22:22:44
阅读次数:
102
1. 什么是static? static 是 C/C++ 中很常用的修饰符,它被用来控制变量的存储方式和可见性。 1.1 static 的引入 我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如 ...
分类:
其他好文 时间:
2020-05-01 12:27:58
阅读次数:
73
1、前言 在Java5.0之前,协调对共享对象的访问可以使用的机制只有synchronized和volatile。synchronized关键字实现了内置锁,而volatile关键字保证了多线程的内存可见性。在大多数情况下,这些机制都能很好地完成工作,但却无法实现一些更高级的功能,例如,无法中断一个 ...
分类:
其他好文 时间:
2020-04-30 23:23:53
阅读次数:
55
一、Durid介绍ApacheDruid是一个高性能的实时分析数据库。它是为快速查询和摄取的工作流而设计的。Druid的优势在于即时数据可见性,即时查询,运营分析和处理高并发方面。Druid不是关系数据库,需要的是数据源,而不是表。与关系数据库相同的是,这些是表示为列的数据的逻辑分组。与关系数据库不同的是没有连接的概念。因此,Netflix需要确保每个数据源中都包含Netflix要过滤或分组依据的
分类:
Web程序 时间:
2020-04-30 17:17:19
阅读次数:
80
首先要明白每一个线程都是有自己单独的内存区域来执行操作的,也就是有单独的计数器,单独的局部变量等。多线程之间的共享对象,如果在多线程环境下不做特殊处理是极易出问题的。现在主要说的是线程交互之间的可见性。 那什么是可见性呢,简单来说就是纸某个线程修改共享变量的指令对其他线程来说都可见的,它反映的是指令 ...
分类:
编程语言 时间:
2020-04-30 09:16:40
阅读次数:
55
1、并发编程三要素? 1、原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操 作打断,要么就全部都不执行。 2、可见性 可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他 线程可以立即看到修改的结果。 3、有序性 有序性,即程序的执行顺序按照代码的先后 ...
分类:
编程语言 时间:
2020-04-28 16:49:04
阅读次数:
73
线程与JVM 1基本概念: 程序:代码,完成某一件任务,代码序列(静态的概念) 进程:程序在某些数据上的一次运行(动态的概念) 线程:一个进程可能包含一个或多个线程(占有资源的独立单元) 2 JVM与线程 JVM什么时候启动?类被调用 JVM线程 》其他的线程(main) 线程在JVM中 3 JVM ...
分类:
编程语言 时间:
2020-04-28 00:51:56
阅读次数:
63
企查查登陆验证使用的阿里系的滑动验证码,主要检查的是 内置属性、鼠标在页面中的事件、浏览器可见性中的宽高(canvas绘制)、滑动过程中坐标轴的变化等信息。 使用puppeteer能很好的模拟页面中的事件,但是在进行测试企查查登陆时,需要浏览器的可见性,而且与分辨率也有一定的关系,需要设置浏览器和系 ...
分类:
其他好文 时间:
2020-04-28 00:18:52
阅读次数:
204
volatile 保证内存可见性和禁止指令重排。 volatile 用于多线程环境下的单次操作(单次读或者单次写)。 ...
分类:
其他好文 时间:
2020-04-25 00:38:00
阅读次数:
85
35.并行和并发有什么区别? 1.并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 2.并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 3.在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群。 所以并发编程的 ...
分类:
编程语言 时间:
2020-04-24 14:32:30
阅读次数:
67