随笔分类 -  JavaEE

摘要:Disruptor框架简介: 并发框架,基于事件驱动,使用观察者模式 底层采用环形数组,取模算法 简单使用: 工厂: 消费者: 生产者: 启动: 打印如下: 阅读全文
posted @ 2019-10-13 14:55 4ra1n 阅读(531) 评论(0) 推荐(0)
摘要:可重入锁: 简单来说,支持重复加锁,有可重用性 特征:锁可以传递,方法递归传递 目的:避免了死锁现象 代码: 打印: 分析:如果锁不能重用,那么这里将会出现死锁问题 使用ReentrantLock锁: 读写锁: 高并发的时候,写操作的同时应当不允许读操作 (多线程中:读-读共存;读-写、写-写都不可 阅读全文
posted @ 2019-10-12 16:42 4ra1n 阅读(356) 评论(0) 推荐(0)
摘要:Future模式: 其实相当于是前端的Ajax 比如我们使用多线程下载文件时候,每一个线程都会发送HTTP请求资源。而我如何知道,文件下载完毕呢? 也就是说,主线程如何获得子线程的执行结果呢? 创建多线程中的实现runnable接口方式和继承thread类,然后start方法都是直接执行代码的,无法 阅读全文
posted @ 2019-10-05 17:05 4ra1n 阅读(642) 评论(0) 推荐(0)
摘要:线程池的特点: 降低资源:通过重复利用已创建的线程降低线程创建和销毁的损耗 提高效率:当任务到底时,不需要等待,立即执行 方便管理:统一分配,调优和监控等 线程池的创建方式: 1.CachedThreadPool:创建一个可缓存线程池,灵活回收空闲线程 打印后可以发现:同一个线程有被再次利用,线程池 阅读全文
posted @ 2019-10-05 17:04 4ra1n 阅读(537) 评论(0) 推荐(0)
摘要:并发队列: 在并发队列中,JDK有两套实现: ConcurrentLinkedQueue:非阻塞式队列 BlockingQueue:阻塞式队列 阻塞式队列非阻塞式队列的区别: 阻塞式队列入列操作的时候,如果超出队列总数,这个时候会进行等待;在出列的时候,如果队列为空,也会等待 非阻塞无论如何都不等待 阅读全文
posted @ 2019-10-04 18:59 4ra1n 阅读(452) 评论(0) 推荐(0)
摘要:多线程目的:在同一时刻有多条不同路径执行程序,提高程序运行效率 多线程应用:数据库连接池,多线程文件下载等 注意:在文件下载中使用多线程,无法提高速度 在一个进程中,一定会有主线程 从基础开始,多线程的使用方式: 1.继承Thread类:(不推荐) 注意:threadDemo调用的是start方法; 阅读全文
posted @ 2019-10-04 13:42 4ra1n 阅读(469) 评论(0) 推荐(0)