java-多线程
我家小宝_朱朱
这个作者很懒,什么都没留下…
展开
-
java-线程池
线程池体系ThreadPoolExecutor APIThreadPoolExecutor 用于创建线程池,它有 4 个重载构造器,我们以最多参数的构造器讲解:ThreadPoolExecutor(int corePoolSize, # 线程池核心线程个数,默认线程池线程个数为 0,只有接到任务才新建线程 int maximumPoolSize, # 线程池最大线程数量 ...转载 2021-12-06 21:26:14 · 125 阅读 · 0 评论 -
Java 多线程开发之 Callable
Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式: 实现 Callable 接口。Callable 接口类似于 Runnable,但是 Runnable 不会返回结果,并且无法抛出经过检查的异常,而 Callable 依赖 FutureTask 类获取返回结果。没有使用线程池:代码演示:public class CallableTest { public static void main(String[] args) throws E转载 2021-12-06 21:24:18 · 10242 阅读 · 0 评论 -
多线程实现3种
Thread方式class MyThread extends Thread{ //单继承 private String title; public MyThread(String title){ this.title = title; } //覆写线程的run方法 @Override public void run() { for (int i = 0 ; i < 10; i++){ Sy.转载 2021-12-06 21:11:41 · 114 阅读 · 0 评论 -
Java多线程: Semaphore
一.CountDownLatch用法 CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。 CountDownLatch类只提供了一个构造器:1publicCountDownLatch(intcount) { ...转载 2018-02-23 16:22:45 · 147 阅读 · 0 评论 -
java:CyclicBarrier用法
CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同: CountDownLatch一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行; 而CyclicBarrier一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行; 另外,CountDownLatch是不能够重用的,而CyclicBarrier是可以重用的。第一个例子:假若有若干个线程都要进行写数据操作,并且只有所有线程都完成写数据操作之后,.转载 2021-12-06 20:50:36 · 165 阅读 · 0 评论 -
java向多线程中传递参数
一、通过构造函数传递参数public class MyThread1 extends Thread{ private String name; public MyThread1(String name) { this.name = name; } public void run() { System.out.println("hello " + name); } public static void ma转载 2021-12-06 20:02:07 · 1167 阅读 · 0 评论 -
java 多线程:数据较多,分给多个线程并发处理
1. 构建一个数据列表2. 将数据按照5个线程均分,每个线程拿到均分的数据3. 主线程通过等待5个处理数据线程处理好后最后停止4. 线程处理的结果信息返回 5. 比较不是并发的情况,并发5个线程是远快与一个线程处理的public class ThreadTest2 { private List<String> msg = new ArrayList(); private List<String> spliteList =...原创 2021-12-06 20:47:20 · 4208 阅读 · 0 评论 -
Java之CountDownLatch使用
CountDownLatch1、类介绍一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。一个线程(或者多个...转载 2018-02-23 11:18:04 · 180 阅读 · 0 评论 -
java 读写锁
Lock类除了提供了ReentrantLock的锁以外,还提供了ReentrantReadWriteLock的锁。读写锁分成两个锁,一个锁是读锁,一个锁是写锁。读锁与读锁之间是共享的,读锁与写锁之间是互斥的,写锁与写锁之间也是互斥的。看下面的读读共享的例子:public class ReadReadService { private ReentrantReadWriteLock lock ...原创 2018-02-23 10:47:28 · 199 阅读 · 0 评论 -
Java synchronized 多线程同步问题详解
https://segmentfault.com/a/11900000092257061. 引言在 Java 多线程编程中,我们常需要考虑线程安全问题,其中关键字synchronized在线程同步中就扮演了非常重要的作用。下面就对synchronized进行详细的示例讲解,其中本文构建thread的写法是采用 Java 8 新增的 Lambda 表达式。如果你对 Lambda 表达式还...转载 2018-02-23 09:40:43 · 242 阅读 · 0 评论 -
使用Lock+Condition实现交替答应A,B,A,B
import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ThreadTest2 { private Lock lockA = new ReentrantLock(); private Condition conditionA = lockA.newCon.原创 2021-12-06 15:03:48 · 104 阅读 · 0 评论 -
Java并行编程-lock及condition
http://blog.csdn.net/chenchaofuck1/article/details/51592429Lock类实际上是一个接口,我们在实例化的时候实际上是实例化实现了该接口的类Lock lock = new ReentrantLock();。用synchronized的时候,synchronized可以修饰方法,或者对一段代码块进行同步处理。前面讲过,针对需要同步处理的代码设置对...转载 2018-02-23 10:46:46 · 205 阅读 · 0 评论