- 博客(6)
- 收藏
- 关注
转载 并发编程之锁
1.轻量级锁(Lock)与重量级锁(synchronized):都是可重入锁2.可重入锁(递归锁):方法中嵌套方法,锁可传递3.读写锁(ReentrantReadWriteLock)--读写分离 读锁(获取该值信息)和写锁(对该值操作)4.乐观锁 本质没有锁,效率比较高、无阻塞、无等待、重试。5.悲观锁 属于重量级锁,会阻塞、会进行等待。synch...
2019-09-15 14:00:00 82
转载 并发编程之线程池原理分析
1.并发队列:ConcurrentLinkedQueue(非阻塞式)和BlockingQueue(阻塞式) 阻塞式队列和非阻塞式队列的区别 阻塞式队列: 入列:如果超出队列总数,这时候会进行等待(阻塞)。 出列:如果获取队列为空的情况下,这时候也会进行等待(阻塞)。2.线程池原理分析 提交一个任务到线程池中,线程池...
2019-09-11 22:04:00 66
转载 并发编程之多线程之间通讯
1.重排序概念 A.cpu会对代码执行顺序实现优化,不会对有依赖关系的数据做重排序。代码的执行顺序可能会发生改变,但是执行的结果不会发生任何改变。 B.as-if-serial:不管怎么去做重排序,目的是提高并行度,但是不能影响到正常的结果。 C.重排序在多线程情况下遇到2.wait()和notify() A.wait()等待:让线程等待,并释放锁资源...
2019-09-05 23:33:00 98
转载 并发编程之java内存模型
1.线程安全问题 什么是线程安全问题?当多个线程共享同一个全局变量时,注意,做写的操作时,可能会受到其他线程的干扰,做读是不会发生线程 安全问题的。---java内存模型(线程可见性)2.解决线程安全问题 A.内置锁(synchronized):保证线程原子性,当线程进入方法的时候,自动获取锁,一旦锁被某一线程获取到后,其他线程就会等待。 a.锁...
2019-09-05 00:42:00 85
转载 并发编程之多线程基础
1.线程其实是程序的一条执行路径;进程是一个独立应用程序。2.cpu随机切换进程:大家以为进程都是在同时执行,实际上底层是cpu在不断进行切换。一个进程中有N多线程,进程是所有线程的集合。 多线程的目的是为了提高程序执行效率。3.线程是一条执行路径,每个线程都互不影响。多线程是在一个进程中有多条不同的执行路径,并行执行,目的是为了提高程序效率。4.在一个进程中,一定会...
2019-09-04 00:20:00 69
转载 散列表(Hash表)学习笔记
1.三列表用的是数组支持按照下标随机访问数据的特性, 所以散列表其实就是数组的一种扩展, 由数组演化而来.2.元数据, 我们可以称之为键(key)或者关键字, 经过散列函数(Hash函数)映射出一个散列值(hash值), 即数组下标.3.构建散列函数的三个要求: A.散列函数计算得到的散列值是一个非负整数; B.如果key1=key2, 那hash(key1)=...
2019-08-30 15:32:00 105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人