自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 并发编程思考

并发编程的起因就是引入多线程所关注的问题,无非是为了提高cpu的利用率,尽可能的提高程序的执行效率。并发编程的核心点:1.分工2.同步3.互斥分工就是将一个大的task分割成多个小的task,由多个线程并发的去执行,需要考虑上下文切换的开销同步就是,既然有了多个线程并发执行,这时候就需要考虑多个线程之间通信的问题,目前Java中主流的方案就是内存共享以及通过管程来实现互斥就是既然有了...

2019-06-26 13:12:54 111 1

原创 Disruptor高性能线程完全队列思考

Disruptor相比与传统的线程安全的阻塞队列(ArrayBlockingQueue)的改进:1.内存结构2.cas无锁操作内存结构的改进主要有一下几点:1.利用RingBuffer数据结构而不是数组构建队列底层数据,好处是主要可以利用局部性原理这个规则,局部性原理主要包括时间局部性和空间局部性。时间局部性指的是如果一条指令在某个时间点被访问,那么在接下来的一段时间也可能会被访问,而...

2019-06-13 15:35:17 145

原创 阻塞非阻塞,同步异步io

阻塞和非阻塞io区别:阻塞IO:在发起一个系统调用时,例如网络io或者文件io时,调用线程是阻塞等待直到内核空间将所需数据准备好并且copy到用户空间。非阻塞IO:发起系统调用时,调用线程不会阻塞在用户空间,此时调用线程可以处理其他的事情通常通过IO多路复用实现如selector,poll,epoll等,通过注册不同的channel来处理不同的多个请求,从而达到提高并发性能。但是同步的非阻塞模...

2019-06-12 18:35:11 75

原创 关于volatile,final关键字的一点思考

1.顺序一致性模型,这个是一个理论参考模型,为程序员提供了一个极强的内存可见性保证,主要有以下两个特征:a.一个线程中所有操作必须按照程序中的顺序执行b.多线程中(不管是否同步),所有线程只能看到一个单一的执行顺序。即在内存中有一个全局的顺序性。因为在同一时刻只有一个线程会连接到主内存,对主内存的操作会立刻同步到主内存,对其他的线程是可见的。例如在做线程同步的情况下,A线程获取到锁,A有三个...

2018-12-14 01:24:04 281

空空如也

空空如也

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

TA关注的人

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