Java
fll980205
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CountDownLatch、CyclicBarrier、Semaphore
1、CountDownLatch: CountDownLatch只能使用一次; countDown():计数器的值依次减1; 实现减法计数器: public class CountDownLatchTest { public static void main(String[] args) { /*优先执行,执行完毕之后,才能执行 main*/ /*1、实例化...原创 2020-03-24 16:30:25 · 285 阅读 · 0 评论 -
Forkjoin框架
Forkjoin是JDK1.7提供的多线程并发处理框架,本质上是对线程池的一种补充; 它的核心思想就是将一个大型任务拆分成很多个小任务,分别执行,最后再将小任务的结果进行汇总 本质就是:一个线程任务拆分成多个线程并发执行 工作窃取:A、B两个线程同时执行,A的任务比较多,B先执行完了,此时B将A的一部分拿过来,替A执行,从而提升效率; Forkjoin框架的使用需要用到两个类: F...原创 2020-03-23 18:18:42 · 309 阅读 · 0 评论 -
生产者消费者模型
生产者消费者模型: 有一个容器来盛放商品,左边有生产者生产该商品,并将生产的商品放入该容器中;右边有消费者,从容器中拿走商品; 容器中商品的个数不可能为负数;当容器中没有商品时,消费者无法消费;当容器中满的时候,生产者不能再生产商品了; 下面来实现该现象: (1)使用synchronized的方式 /* * 生产者消费者模型 * synchronized、wait/notify的方式 * *...原创 2020-03-23 18:17:54 · 264 阅读 · 0 评论 -
synchronized使用
synsynchronized的使用方法: 1、synchronized修饰方法 (1)synchronized修饰非静态方法: 锁的是方法的调用者 import java.util.concurrent.TimeUnit; class Data { /*synchronized修饰非静态方法,锁的是即方法的调用者,即 调用func1方法的对象*/ public s...原创 2020-03-23 17:22:19 · 279 阅读 · 0 评论 -
Redis
Redis是一个全开源免费的,用C语言编写的,是一个单线程、高性能的内存数据库,是基于内存运行并支持持久化的nosql数据库,是一个key-value数据库; Redis主要是用来做缓存,但不仅仅只能做缓存,比如:redis实现分布式锁、队列、回话缓存; Redis: **(1)**支持持久化,有RDB持久化和AOF持久化两种方式; 持久化就是将内存中的数据写入到硬盘中;而如果Redis突然出错罢...原创 2019-11-11 16:40:37 · 202 阅读 · 1 评论 -
SpringMVC的部分注解
@Controller: 标识Spring MVC Controller处理器,用来创建处理HTTP请求的对象; @RequestMapping: @RequestMapping相关参数 1.value:指定url请求的实际地址,是@RequestMapping的默认值 @RequestMapping(“hello”)等同于 @RequestMapping(value=“hello”) 2.met...原创 2019-11-10 14:59:59 · 139 阅读 · 0 评论 -
SpringMVC的执行流程
SpringMVC原创 2019-11-10 13:54:15 · 152 阅读 · 0 评论 -
ConcurrentHashMap的读操作不需要加锁
public V get(Object key) { Node<K,V>[] tab; Node<K,V> e, p; int n, eh; K ek; int h = spread(key.hashCode()); if ((tab = table) != null && (n = tab.length) &...原创 2019-11-08 11:57:48 · 2018 阅读 · 0 评论
分享