【转】深度解析Java 8:JDK1.8 AbstractQueuedSynchronizer的实现分析(上)

2017-2-21 diaba 多线程

前言 Java中的FutureTask作为可异步执行任务并可获取执行结果而被大家所熟知。通常可以使用future.get()来获取线程的执行结果,在线程执行结束之前,get方法会一直阻塞状态,直到call()返回,其优点是使用线程异步执行任务的情况下还可以获取到线程的执行结果,但是FutureTask的以上功能却是依靠通过一个叫AbstractQueuedSynchronizer的类来实现,至少在JDK 1.5、JDK1.6版本是这样的(从1.7开始FutureTask已经被其作者Doug Lea修改为不再依赖AbstractQueuedSynchronizer实现了,这是...

阅读全文>>

评论(0) 浏览(2287)

【转】从根源上解析 Java volatile 关键字的实现

2017-2-21 diaba 多线程

1、解析概览 内存模型的相关概念 并发编程中的三个概念 Java内存模型 深入剖析Volatile关键字 使用volatile关键字的场景 2、内存模型的相关概念 缓存一致性问题。通常称这种被多个线程访问的变量为共享变量。 也就是说,如果一个变量在多个CPU中都存在缓存(一般在多线程编程时才会出现),那么就可能存在缓存不一致的问题。 为了解决缓存不一致性问题,通...

阅读全文>>

评论(0) 浏览(2251)

spring-BeanCreationException

2017-2-16 diaba Spring

服务错误异常log: HTTP Status 500 - Servlet.init() for servlet applicationContext threw exception type Exception report message Servlet.init() for servlet applicationContext threw exception description The server encountered an internal error that prevented it from fulfilling this...

阅读全文>>

评论(0) 浏览(2865)

Git-命令大全

2017-2-16 diaba 工具使用

git log --name-status -8                   //查看日志,显示最近8条,每条修改的明细也显示 删除本地分支 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Monaco; color: #f4f4f4; background-color: #000000; background-color: rgba(0, 0, 0, 0.85)} span.s1 {font-var...

阅读全文>>

标签: git

评论(0) 浏览(2026)

【转】JVM原理讲解和调优

2017-2-15 diaba JVM

一、什么是JVM     JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。     Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言...

阅读全文>>

评论(0) 浏览(2796)

Mac-删除卸载GlobalProtect

2017-2-6 diaba mac

公司原使用GlobalProject,所以mac上安装了它,用着不错,唯一不足的是该软件是自启动,如果使用命令行强制执行退出改程序,改程序马上会自动从新开始运行,导致一个问题,想要删除该程序,删除不了,会提示该程序正在运行,不允许删除到垃圾桶。 那么如何删除改程序呢? 自己琢磨了半天终于搞定,分享给大家: GlobalProtect程序所在的目录:/Applications/GlobalProtect.app 1.删除文件Info.plist(mac启动该程序时使用)     /Applicat...

阅读全文>>

评论(0) 浏览(18774)

Powered by emlog 京ICP备15045175号-1 Copyright © 2022