关耳er |
|
||
2020年3月25日
摘要:
Java锁 锁一般来说用作资源控制,限制资源访问,防止在并发环境下造成数据错误 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 ReentrantLock(轻量级)等等 ) 。这些已经写好提供的锁为我们开发提供了便利。 一、重入锁 重入锁, 阅读全文
2020年3月23日
摘要:
并发队列 在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue。 一、ConcurrentLinkedQueue ConcurrentLinkedQueue:是一个适 阅读全文
摘要:
一、线程实现方式 1.继承Thread类 2.实现Runnable接口 3.线程池 4.Callable 二、无论使用继承Thread类还是实现Runnable接口,还是使用线程池都没有办法解决2个问题 1.线程执行没有返回值结果 2.线程执行没有办法抛出异常,只能自己通过try-catch解决 三 阅读全文
2020年3月19日
摘要:
线程池 一、什么是线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等 阅读全文
摘要:
并发工具类 一、CountDownLatch CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。 CountDownLatch是一个同步计数器,初始化的时候传入需要计数的线程等待数,可以是需要等待执行完成的线程数,或者大于; 作用:用来协 阅读全文
2020年3月18日
摘要:
一、概述 串行:一个线程在处理操作; 并行:多个线程在处理操作; 并发编程:在多线程环境下,应用程序的执行; 并发编程的目的:同分运用到资源,提供程序的效率 什么情况下用到并发编程: 1.在线程阻塞时,导致应用程序停止; 2.处理任务时间过长,可以创建子任务,来进行分段处理; 3.间断任务执行; 二 阅读全文
2020年3月17日
摘要:
HashMap底层源码剖析 1、HashMap底层用到的数据结构 数组+单向链表+红黑树 数组:数组每一项都是一个链表,其实就是数组和链表的结合体 单向链表:当法神hash碰撞时,首先会找到数组对应位置,然后1.8采用尾插入法(1.7采用头插入法),形成一个单项链表结构 红黑树:当数组中每项的链表长 阅读全文
摘要:
ConcurrentHashMap底层实现 1、ConcurrentHashMap和HashTable区别 ConcurrentHashMap融合了hashtable和hashMap二者的优势; hashTable是做了同步的,hashMap没有同步,所以hashMap在单线程情况下效率高,hash 阅读全文
2020年3月16日
摘要:
一、了解Map集合吗?Map集合都有哪些实现 HashMap HashTable LinkedHashMap TreeMap ConcurrentHashMap 二、HashMap和HashTable之间的区别 1、定义 HashMap底层基于数组+单向链表(红黑树),非线程安全,允许有空的键和值 阅读全文
摘要:
一、Map 1、关系 Map: 双列数据,存储key-value对的数据 类似于高中的函数:y = f(x) HashMap: 作为Map的主要实现类;线程不安全的,效率高;存储null的key和value LinkedHashMap: 保证在遍历map元素时,可以按照添加的顺序实现遍历。 原因:在 阅读全文
|
Copyright © 2024 关耳er
Powered by .NET 9.0 on Kubernetes |