自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池

什么是线程池?为什么要用线程池? 1、降低资源的消耗。降低线程创建和销毁的资源消耗; 2、提高响应速度:线程的创建时间为T1,执行时间T2,销毁时间T3,免去T1和T3的时间 3、提高线程的可管理性。 实现一个我们自己的线程池 1、线程必须在池子已经创建好了,并且可以保持住,要有容器保存多个线程; 2、线程还要能够接受外部的任务,运行这个任务。容器保持这个来不及运行的任务. JDK中的线程池和工作...

2019-04-29 13:16:01 148

原创 阻塞队列

概念、生产者消费者模式 1)当队列满的时候,插入元素的线程被阻塞,直达队列不满。 2)队列为空的时候,获取元素的线程被阻塞,直到队列不空。 生产者和消费者模式 生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为...

2019-04-29 13:14:00 133

原创 并发容器ConcurrentSkipListMap和ConcurrentSkipListSet及写时复制理解

更多的并发容器 ConcurrentSkipListMap 和 ConcurrentSkipListSet TreeMap和TreeSet有序的容器,这两种容器的并发版本 跳表 SkipList,以空间换时间,在原链表的基础上形成多层索引,但是某个节点在插入时,是否成为索引,随机决定,所以跳表又称为概率数据结构。 ConcurrentLinkedQueue 无界非阻塞队列,底层是个链表,遵循先进...

2019-04-29 13:10:01 222

原创 并发容器ConcurrentHashMap底层实现及源码解析

并发容器 ConcurrentHashMap Hashmap多线程会导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,就会产生死循环获取Entry。 HashTable使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法,其他线程也访问Hash...

2019-04-29 13:06:57 509

原创 并发编程---进阶篇

常用的并发工具类 CountDownLatch 作用:是一组线程等待其他的线程完成工作以后在执行,加强版join await用来等待,countDown负责计数器的减一 CyclicBarrier 让一组线程达到某个屏障,被阻塞,一直到组内最后一个线程达到屏障时,屏障开放,所有被阻塞的线程会继续运行CyclicBarrier(int parties) CyclicBarrier(int parti...

2019-04-29 13:02:45 197

原创 并发编程---基础篇

进程和线程 进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源。 线程:CPU调度的最小单位,必须依赖进程而存在。 并行和并发 并行:同一时刻,可以同时处理事情的能力 并发:与单位时间相关,在单位时间内可以处理事情的能力 高并发编程的意义、好处和注意事项 好处:充分利用cpu的资源、加快用户响应的时间,程序模块化,异步化 问题: 线程共享资源,存在冲突; 容易导致死锁; 启...

2019-04-29 12:56:29 132

空空如也

空空如也

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

TA关注的人

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