(10)...并发
IT云清
技术专家,团队主管,Apache Seata Committer,公众号:java4all
展开
-
Java多线程系列(二)-----实现方式
上一篇讲到了,多线程可以同时执行多个任务,那么,该如何创建线程呢?通过API中搜索,查到Thread类。通过阅读Thread类中的描述:Thread是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。 继续阅读,发现创建新执行线程有两种方式:1)将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。创建对象,开启线程。run方法相当于...原创 2017-08-31 19:23:48 · 522 阅读 · 1 评论 -
ListeningExecutorService的使用
由于普通的线程池,返回的Future,功能比较单一;Guava 定义了 ListenableFuture接口并继承了JDK concurrent包下的Future 接口,ListenableFuture 允许你注册回调方法(callbacks),在运算(多线程执行)完成的时候进行调用。1.使用方法如下:1.创建线程池2.装饰线程池3.任务处理4.回调函数处理5.所有任务完成后处理...原创 2018-09-19 18:42:21 · 17882 阅读 · 4 评论 -
线程池的创建和使用
几种线程池的创建和使用目录:1.newFixedThreadPool固定线程池2.newSingleThreadExecutor一个线程的线程池3.newCachedThreadPool缓存线程池4.ThreadPoolExecutor5.Future获取返回结果1.newFixedThreadPool固定线程池示例:ExecutorService fixedThreadPo...原创 2018-09-19 17:12:34 · 4786 阅读 · 5 评论 -
同步屏障CyclicBarrier
package com.java4all.mypoint;import java.time.LocalTime;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;/** * Author: yunqing * Date: 2018/7/23 * ...原创 2018-07-24 17:37:48 · 233 阅读 · 0 评论 -
java CountDownLatch用法 主线程等待子线程执行完后再执行
这里记录一下下面这种情况:主线程需要等待多个子线程执行完后再执行。1.使用CountDownLatch示例如下,我们初始化一个CountDownLatch,值为10(子线程个数),然后每次一个子线程执行完后执行一下countDown(),代码示例如下:...原创 2018-07-23 17:41:33 · 4957 阅读 · 0 评论 -
Java中modCount的用法,fail-fast机制
在线程不安全的集合类中,都有这个用法。我们以AbstractList为例,拿出源码中的解释:1.modCount源码解释 /** * The number of times this list has been <i>structurally modified</i>. * Structural modifications are ...原创 2018-06-07 18:58:53 · 1828 阅读 · 0 评论 -
fail-fast分析
本文转载自:点击跳转先了解一些词语volatile:volatile的本意是“易变的”。volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数...转载 2018-06-07 11:52:36 · 227 阅读 · 0 评论 -
Spring Boot---(7)SpringBoot多线程
前提:日常开发,有很多场景会使用到多线程,比如,我们解析Excel,如果解析出一个3万条数据的Excel表格,需要两部:1.我们需要先异步解析出所有的数据,前面写过了如何异步处理任务(Spring Boot---(4)SpringBoot异步处理任务);2.然后再多线程去处理业务或者插入到数据库;这里,讲解一下,如何使用多线程,如何调用回调函数。1.引入pom.xml的依赖原创 2018-01-22 22:37:28 · 12492 阅读 · 13 评论 -
Java多线程系列(三)-----线程池
线程池主要用来解决线程生命周期开销问题和资源不足问题。通过对多个任务重复使用线程,线程创建的开销就被分摊到了多个任务上了,而且由于在请求到达时线程已经存在,所以消除了线程创建所带来的延迟。这样,就可以立即为请求服务,使用应用程序响应更快;另外,通过适当的调整线程中的线程数目可以防止出现资源不足的情况。原创 2017-09-02 21:02:01 · 461 阅读 · 0 评论 -
Java多线程系列(一)-----基本概念
这个系列,主要记录java中一个非常重要的知识点--多线程,系列1主要理清一些基本的相关概念,引入多线程原创 2017-08-31 19:21:27 · 445 阅读 · 0 评论 -
spring事务的传播属性--@Transaction的Propagation属性
在Spring的Transaction中,有个重要的属性:Propagation,指的是事务方法之间发生嵌套调用时,事务的传播行为(当前调用的这个方法的事务,和当前的其他事务之间的关系)。在TransactionDefinition中定义了7种事务的传播行为,这里简单记录一下。看一下Propagation的源码public enum Propagation { //默认值 //当前有事...原创 2018-10-30 19:54:37 · 4533 阅读 · 0 评论