自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dave的博客

数据搬运工,厚积薄发

  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java并发-顺序一致性模型

顺序一致性模型顺序一致性内存模型有两大特性 1)一个线程中的所有操作必须按照程序的顺序来执行。 2)(不管程序是否同步)所有线程都只能看到一个单一的操作执行顺序。在顺序一致性内存模型中,每个操作都必须原子执行且立刻对所有线程可见。 在概念上,顺序一致性模型有一个单一的全局内存,这个内存通过一个左右摆动的开关可以连接到任意一个线程,同时每一个线程必须按照程序的顺序来执行内存读/写操作。...

2018-06-24 19:37:36 1848

原创 Java并发-happens-before,重排序

happens-before规则程序顺序规则:一个线程中的每个操作,happens-before于该线程中的任一后续操作 监视器锁规则:对一个锁的解锁,happens-before于随后对这个锁的加锁 volatile变量规则:对一个volatile域的写,happens-before于任一后续对这个volatile域的读 传递性:如果A happens-before B,且B happ...

2018-06-24 15:44:40 356

原创 Java并发-内存屏障

现代的处理器使用写缓冲区临时保存内存写入的数据。写缓冲区可以保证指令流水线持续运行,他可以避免由于处理器停顿下来等待内存写入数据而产生的延迟。同时,通过以批处理的方式刷新写缓冲区,以及合并写缓冲区中对同一个内存地址的多次写,减少对内存总线的占用。每个处理去上的写缓冲区,仅仅对它所在的处理器可见。这个特性会对内存操作的执行顺序产生重要的影响:处理器对内存的读/写操作的执行顺序,不一定与内存实际发生的...

2018-06-23 16:35:15 364

原创 Java并发-Java内存模型

线程之间的通信与同步通信是指线程之间以何种机制来交换信息,线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。 在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显式进行通信。同步是指程序中用于控制不同线程间操作发生相对顺序的机制。 在共享内存并发模型里,同步时显式进行的。程...

2018-06-23 14:50:03 271

原创 Java并发-synchronized与原子操作的实现原理

synchronizedJava中的每一个对象都可以作为锁 1.对于普通同步方法,锁是当前实例对象 2.对于静态同步方法,锁是当前类的Class对象 3.对于同步方法块,锁是Synchronized括号里配置的对象 当一个线程驶入访问同步块时,它首先必须得到锁。退出或者抛出异常时必须释放锁。实现原理JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但实现细节不一...

2018-06-23 14:22:37 1946

转载 JavaWeb-POST与GET

POST与GET区别GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET请求在URL中传送的参数是有长...

2018-06-21 19:19:20 369

原创 Java并发-活跃性问题

饥饿当线程由于无法访问它所需要的资源而不能继续执行时,就发生了“饥饿“。 引发饥饿的最常见资源就是CPU时钟周期。(无限循环,或者无限制地等待某个资源) Thread API中定义的线程优先级只是作为线程调度的参考,定义了10个优先级,JVM根据需要将它们映射到操作系统的调度优先级。这种映射是与特定平台相关的,可能某个操作系统中两个不同的Java优先级可能被映射到同一个优先级。 经常可能...

2018-06-19 20:54:32 616

原创 Java并发-synchronized与ReentrantLock之间的选择

可重入ReentrantLock和synchronized其实都是可重入的锁。两者都是同一个线程每进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。实现synchronized是依赖JVM实现的,而ReentrantLock是JDK实现的性能synchronized优化以前,性能比ReentrantLock差很多。自从Synchronized引入了...

2018-06-19 19:50:50 517

原创 Java并发-ThreadLocal

ThreadLocal与线程同步机制的区别线程同步机制是共享同一个变量 ThreadLocal是为每个线程创建一个变量副本ThreadLocalThreadLocal内部还有一个静态内部类ThreadLocalMap,该内部类才是实现线程隔离机制的关键,get()、set()、remove()都是基于该内部类操作。ThreadLocalMap提供了一种用键值对方式存储每一个线程的...

2018-06-17 20:22:31 159

redis可视化工具

redis windows mac linux可视化工具 Redis Desktop Manager 顾名思义是针对Redis 数据库开发的桌面管理芽人,它是快速,简单的Redis数据库图形化界面管理器,支持Windows、Mac和Linux平台。

2018-04-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除