![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 84
tianya3530
这个作者很懒,什么都没留下…
展开
-
【总结】消息队列 - Kafka
阶段性总结以备不时之需,总结有误的地方,欢迎指正交流。1.为什么使用消息队列异步处理、应用解耦、流量削锋2.使用消息队列的缺点系统可用性降低 - 如果消息系统挂掉就会导致系统服务不可用。 系统复杂性增加 - 需要考虑很多方面的问题:一致性问题、如何保证消息不被重复消费、如何保证消息可靠性传输等。3.kafka相关概念1)producer(生产者):消息生产者,发布消息到 ...原创 2019-11-13 22:40:08 · 520 阅读 · 1 评论 -
学习笔记 08 --- JUC线程池
学习笔记 08 --- JUC线程池ThreadPoolExecutor原创 2017-01-23 15:37:14 · 739 阅读 · 0 评论 -
学习笔记 07 --- JUC集合
学习笔记 07 --- JUC集合在讲JUC集合之前我们先总结一下Java的集合框架,主要包括Collection集合和Map类,Collection集合又可以划分为LIst和Set。1. List的实现类主要有: LinkedList, ArrayList, Vector, Stack。(01) LinkedList是双向链表实现的双端队列;它不是线程安全的,只适原创 2017-01-20 10:35:33 · 3471 阅读 · 1 评论 -
学习笔记 05 --- JUC锁
学习笔记 05 --- JUC锁LockSupport:LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport通过unsafe函数中的接口来实现阻塞和解除阻塞的,AQS和其他的lock都会使用到这个基础类。LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程(park()---获取许可,u原创 2017-01-13 09:55:50 · 1034 阅读 · 0 评论 -
学习笔记 04 --- JUC锁
学习笔记 04 --- JUC包之锁同步锁:通过synchronized关键字来进行同步,实现竞争资源的互斥访问的锁。同步锁的原理是对于每一个对象,有且仅有一个同步锁,不同的线程能共同访问该同步锁,但是在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能进行CPU调度;而没有获取到同步锁的线程,必须进行等待,知道获取到同步锁之后才能继续运行。原创 2017-01-12 10:23:03 · 542 阅读 · 0 评论 -
学习笔记 06 --- JUC锁
学习笔记 06 --- JUC锁ReadWriteLock和ReentrantReadWriteLock:JUC包中的锁包括“独占锁”和“共享锁”,ReentrantLock就是典型的独占锁。JUC包中的共享锁包括CountDownLatch, CyclicBarrier, Semaphore, ReentrantReadWriteLock等。ReentrantRead原创 2017-01-16 10:30:21 · 587 阅读 · 0 评论 -
学习笔记 03 --- JUC原子类
学习笔记 03 --- JUC包JUC ------- Java.util.concurrent包:Java 5 之后添加了一个新的包JUC 包到Java平台,JUC包包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建JUC 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提原创 2017-01-11 09:48:40 · 614 阅读 · 0 评论 -
学习笔记 02 --- Java多线程
学习笔记(20170106)--- Java多线程 02学习笔记(20170105)---Java多线程 01synchronized关键字:脏读:在多线程中,难免会出现多个线程对同一个对象的实例变量进行并发操作的情况,如果没有同步处理,那么就会造成脏读,最后的结果是不正确的。synchronized获取的锁都是对象锁,而不是把一段代码或者方法当原创 2017-01-10 10:14:25 · 543 阅读 · 0 评论 -
学习笔记 01 --- Java多线程
新建状态(New) : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。运行状态(Running) : 线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。阻塞状态(Blocked) : 阻塞状态是线程因为某种原原创 2017-01-05 16:14:55 · 384 阅读 · 0 评论