多线程
文章平均质量分 73
阿祥仔
微信搜索Java猿社区,欢迎加入,一起努力,一起成长!
展开
-
Java多线程编程核心技术--第四章–对象的组合
004.第四章–对象的组合 Java多线程编程核心技术代码记录 多线程 对象的组合004.第四章–对象的组合 4.1 设计线程安全的类 001.p46-在设计线程安全类的过程中的三个基本要素? 4.1.2 依赖状态的操作 002.p46-实现某个等待先验条件为真时才执行的操作,可以通过什么方法? 003.p43-发布一个静态构造对象的最简单,...原创 2018-09-27 22:52:30 · 2660 阅读 · 0 评论 -
Java多线程编程实战—Future实现类:FutureTask
欢迎关注作者简书csdn传送门文章目录FutureTask介绍案例FutureTask在高并发环境下确保任务只执行一次FutureTask介绍FutureTask是future的实现类,它同时实现了两个接口:Runnable和Future,所以它既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值。因此我们可以:调用FutureTask对象的ru...原创 2019-05-14 21:13:44 · 1543 阅读 · 0 评论 -
Java猿社区—Java多线程编程实战—第一章、基础知识篇
@(架构之路之Java多线程编程实战)欢迎关注作者博客简书传送门文章目录前言第一章1、 jconsole监控工具1.1、JVM一些参数1.2、启用 jconsole 以监控 Java 进程1.3、远程监控 Java 进程1.4、jconsole 提供的一些有用信息1.4.1、JVM 设定信息是否起作用检查1.4.2、tomcat 线程池、自定义线程池数量情况实时监控1.4.3、内存使用实际消...原创 2019-03-16 21:22:20 · 403 阅读 · 3 评论 -
分布式锁的基本原理和实现
欢迎关注作者简书文章目录一、什么是分布式锁?二、分布式锁的使用场景。三、分布式锁的实现(Redis)转发:原文来自 传送门一、什么是分布式锁? 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。 线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享...转载 2018-11-27 21:37:41 · 906 阅读 · 0 评论 -
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore欢迎关注作者博客简书传送门转载:原文地址 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。一.CountDownLatch用法 CountDow...转载 2018-11-25 23:38:58 · 448 阅读 · 0 评论 -
通过锁顺序来避免动态的锁顺序死锁
通过锁顺序来避免动态的锁顺序死锁前言 两个线程试图通过不同的顺序获取多个相同的锁。如果请求的顺序不相同,那么会出现循环的锁依赖现象,产生死锁。但是如果保证同时请求锁L和锁M的每一个线程,都是按照从 L 到 M 的顺序,那么就不会发生死锁了。 比如:银行账户转账问题,两个用户转账的话,如果采用一般的synchronized嵌套的话,容易造成死锁。思想 我们可以制定锁的顺序,并在整个应...原创 2018-11-16 20:59:25 · 2011 阅读 · 0 评论 -
带日志和计时等功能的线程池
带日志和计时等功能的线程池欢迎关注作者博客简书传送门前言 我们先来聊聊ThreadPoolExecutor的拓展。扩展ThreadPoolExecutor 在执行任务的线程中将调用beforeExecute和afterExecute等方法,在这些方法中还可以添加日志、计时、监视或者统计信息收集的功能。无论任务是从run中正常返回,还是抛出一个异常而返回,afterExecute都会...原创 2018-11-14 21:22:18 · 1369 阅读 · 0 评论 -
使用Semaphore控制线程池任务提交的速率
使用Semaphore控制线程池任务提交的速率欢迎关注作者博客简书传送门介绍 当线程池的工作队列被填满后,如果没有预定义的饱和策略来阻塞任务的执行,则可以通过信号量Semaphore来限制任务的到达率。Semaphore是一个同步工具类,用来控制同时访问某个特定资源的操作数量。它的acquire方法返回一个虚拟的许可,如果没有可用的许可,则阻塞该方法的调用线程直到有可用许可为止。如果线程...原创 2018-11-13 21:44:53 · 2544 阅读 · 0 评论 -
多线程异步任务处理
@(多线程&&并发)多线程异步任务处理欢迎关注作者博客简书传送门文章目录多线程异步任务处理线程池线程池的优缺点常用的线程池技术@Async注解源码 我们常用ThreadPoolExecutor提供的线程池服务,springboot框架提供了@Async注解,那我们怎么去使用它呢?我们先来了解下什么是线程池?线程池 线程池是指在初始化一个多线程应用程序过程中创建一个...原创 2018-11-07 21:29:31 · 10313 阅读 · 0 评论 -
微信消息处理队列实现
@(多线程&&并发)微信消息处理队列实现欢迎关注作者博客简书传送门文章目录微信消息处理队列实现**非阻塞队列:****阻塞队列:**代码 首先先来介绍一下阻塞队列和非阻塞队列:非阻塞队列:PriorityQueueLinkedList 在使用非阻塞队列时遇到的问题:不会对当前线程产生阻塞,在面对类似消费者-生产者的模型时,必须额外地实现同步策略以及线程间唤...原创 2018-10-21 20:32:13 · 3502 阅读 · 0 评论 -
Java多线程编程实战—利用Condition来实现阻塞队列
文章目录前言案例欢迎关注作者博客简书传送门前言 假设有一个固定大小的缓冲区(缓冲区是队列,遵守FIFO),支持存和取方法。如果缓冲区为空时尝试取数据,那么线程将阻塞,直到缓冲区有一个可用的数据;如果缓冲区满了,这时尝试写数据,那么线程将被阻塞直到有可用空间。我们希望有两个独立的等待集(Condition阻塞队列),一个放置存数据的等待线程,一个放置取数据的等待线程,这样,当缓冲区有空位置...原创 2019-05-15 19:53:31 · 424 阅读 · 0 评论