- 博客(14)
- 收藏
- 关注
转载 JAVA虚拟机(一):内存区域
根据《java虚拟机规范第二版》规定,现阶段的java内存区域总体如下图其中,方法区和堆是所有线程共享区域。 虚拟机栈,本地方法栈,程序计数器是各线程独占。概述一下各个区域先说说线程私有的几个区域:1.程序计数器1.当前线程所执行的字节码的行号指示器,通过改变这个计数器的值来选取下一条需要执行的指令。由于java虚拟机多线程通过线程切换轮流执行,所以为了线程切换以后能恢复...
2018-10-12 11:48:00 110
转载 JAVA集合面面观
List的常用实现:vector,ArrayList,linkedList。总体关系如下(java8):vector和arraylist两者底层都是采用数组的形式。但是有些许不同 // ArrayList transient Object[] elementData; // non-private to simplify nested class access...
2018-09-27 20:10:00 94
转载 【微服务基础】服务的基本组件
微服务基本组件:服务注册注册中心服务框架服务监控服务跟踪服务治理服务注册提供的服务名,服务返回的结果格式,如何解析,其他服务信息。常用的服务描述方式:REST API:例如swagger.XML: 例如spring+dubbo的配置IDL: 例如gRPC这类跨语言调用框架。注册中心发布与订阅服务主要流程:提供者服务启动时,向注册中心注册...
2018-09-20 20:05:00 338
转载 【微服务基础系列】什么是微服务
本系列是根据极客时间学习笔记从零开始学习微服务单机应用的痛点:部署效率低团队协作成本高可用性差发布慢什么是服务化通俗的说:由传统的jar包的本地调用,改成rpc的远程调用。什么是微服务由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP,RPC API 通讯更细的粗粒度独立部署独...
2018-09-20 17:38:00 124
转载 【java并发编程】十三章:显式锁:LOCK
java5以后,新增了显式锁,用于当内置锁不能满足需求后可选择的一种高级方案。lock接口的特点与内置锁一样,他能提供互斥性,内存可见性,可重入等特征,与内置锁不同的是,Lock提供了一种无条件,可轮询,定时的,可中断的锁获取操作,以及公平队列,非块结构锁,所有的操作都是显式的。lock和内置锁如何选择因为显式锁提供了如上的特点。也就是说,仅当内置锁无法满足要求的时候,才考...
2018-09-18 11:16:00 92
转载 【java并发编程实战】第八章:线程池的使用
1.线程饥饿锁定义:在线程池中,如果任务的执行依赖其他任务,那么可能会产生线程饥饿锁。尤其是单线程线程池。示例:public class ThreadDeadStarveTest { public ExecutorService executor = Executors.newSingleThreadExecutor(); public class DoSo...
2018-09-10 16:31:00 87
转载 找新工作的时候你应该知道问面试官的事儿
当你打算跳槽的时候你需要问清楚面试官的几件事。公司现在的项目情况,上线多久,版本迭代等公司加班文化(加班不可怕,可怕的是一个公司到了下班时间没活干却没人敢走,加班成了员工工作是否合格的标准,走了就成了异类,这样的公司慎重)问清楚面试官当你入职后会从事哪方面的工作。只需要听他说的第一项主要工作,那就是你入职后主要的工作。其他的说我们还有什么什么岗位,你能接触到什么什么的都是假的。慎...
2018-09-07 15:51:00 66
转载 【java并发编程实战】第七章:取消与关闭
停止线程的几种方式一般的逻辑停止public class ThreadInterruptTest { public static volatile boolean cancel = true; public static void main(String[] args) throws InterruptedException { Thread t...
2018-08-31 15:55:00 86
转载 【java并发编程实战】第六章:线程池
1.线程池众所周知创建大量线程时代价是非常大的:- 线程的生命周期开销非常大:创建需要时间,导致延迟处理请求,jvm需要分配空间。- 资源消耗:线程需要占用空间,如果线程数大于可用的处理器数量,那么线程就会闲置,这给Gc造成压力。线程在竞争cpu的时候也会造成性能开销,所以线程不是越多越好,使用不当并不会增加运行效率。- 稳定性:使用不当会造成内存溢出。继而就引申出线程池。...
2018-08-28 14:58:00 63
转载 【java并发编程实战】第五章:基础构建模块
1.同步容器类它们是线程安全的1.1 vector和hashtable。和Collections.synchronizeXxx()一样。实现方式就是在每个方法里面加入synchronize代码块包着。加锁对象为当前对象public int hashCode() { // ... synchronized (mu...
2018-08-27 18:13:00 70
转载 保险配置-作为家里没矿的你应该做的事情
我现在是家里爸妈唯一的儿子。16年转了IT这一行,工资虽然好点,但是开销也上去了。另外爸妈也老了,我外婆这几年病了,装了心脏起搏器。我舅舅跟我说,开销就已经花了十多万了。这件事给我的冲击很大,钱再多,在病面前也是渣渣。一人得病,拖垮一家。所以病起来,真的是钱就像水一样。无底洞似的。近来关注保险这一块。线下保险自己基本不看,一是没经验,二是没钱,说实话线下保险单人如果要覆盖全面的保险,壮...
2018-08-27 12:53:00 123
转载 【java并发编程实战】第二章:对象的共享
1.重要的属性可见性,不变性,原子性1.1可见性当一个线程修改某个对象状态的时候,我们希望其他线程也能看到发生后的变化。在没有同步的情况下,编译器和处理器会对代码的执行顺序进行重排。以提高效率。重排后的顺序是不可预知的,所以在多线程中无法对执行结果进行判断看下面的代码public class NoVisibility { private static boo...
2018-08-23 16:57:00 95
转载 深入理解synchronize
本文参考引用,本人整理个人理解。地址点击1.实现原理synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性。下面是一些同步的基础普通同步方法,锁是当前实例对象;静态同步方法,锁是当前类的class对象;同步方法块,锁是括号里面的对象下面来看看一些代码进行分析public class S...
2018-08-23 15:56:00 139
转载 【java并发编程实战】第一章笔记
1.线程安全的定义当多个线程访问某个类时,不管允许环境采用何种调度方式或者这些线程如何交替执行,这个类都能表现出正确的行为如果一个类既不包含任何域,也不包含任何对其他类中域的引用。则它一定是无状态的对象,无状态对象一定是线程安全的2.竞态条件并发编程中,由于不恰当的执行时序导致不正确的结果。当某个计算结果的正确性取决于多线程交替执行时序时,就会发生竞态条件。常见的竞态条...
2018-08-23 15:55:00 91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人