随笔分类 -  Java多线程

摘要:最近项目中引入了阿里的规范插件,扫描发现之前创建线程池的方式有问题. 比如:Executors.newFixedThreadPool(poolSize) 和 Executors.newCachedThreadPool(); 线程池不允许使用Executors去创建,而是通过ThreadPoolExe 阅读全文
posted @ 2020-05-02 14:06 陈小兵 阅读(348) 评论(0) 推荐(0)
摘要:1.线程锁Lock/ReentrantLock package com.test.lock; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; //线程锁,通常用于替换sy 阅读全文
posted @ 2016-11-03 22:32 陈小兵 阅读(252) 评论(0) 推荐(0)
摘要:使用场景:如果需要拿到线程的结果,或者在线程完成后做其他操作,可以使用Callable 和 Futrue 1.定义一个线程池,向线程池中提交单个callable任务 2.CompletionService 用于提交一组callable任务,并获取每一个任务的结果 阅读全文
posted @ 2016-11-03 22:29 陈小兵 阅读(865) 评论(1) 推荐(0)
摘要:1.固定大小的线程池 ExecutorService threadPools1=Executors.newFixedThreadPool(3); for(int i=1;i<=10;i++){ final int task=i; //循环10次,一共往线程池里面放10个任务 threadPools1 阅读全文
posted @ 2016-11-02 22:34 陈小兵 阅读(216) 评论(0) 推荐(0)
摘要:1.多个线程共享一个变量实现方式1 : 将共享数据封装当另外一个对象中,然后将这个对象传递给各个Runnable对象 package com.test.shareData; /** * 多个线程共享一个变量:1.将共享数据封装当另外一个对象中,然后将这个对象传递给各个Runnable对象 * @au 阅读全文
posted @ 2016-10-31 23:12 陈小兵 阅读(689) 评论(0) 推荐(0)
摘要:1.static实现线程范围内变量共享 package com.test.shareData; import java.util.Random; /** * 多线程范围内的数据共享 * @author Administrator * */ public class ThreadScopeShareD 阅读全文
posted @ 2016-10-31 21:25 陈小兵 阅读(591) 评论(0) 推荐(0)
摘要:1.线程同步 2.线程同步、交互 阅读全文
posted @ 2016-10-13 21:18 陈小兵 阅读(196) 评论(0) 推荐(0)
摘要:1.定时任务定义:new一个定时器,定时器里面再new一个定时任务 new Timer().schedule(new TimerTask(){ @Override public void run() { System.out.println("bombing!"); } },1000);//1S以后 阅读全文
posted @ 2016-10-13 21:10 陈小兵 阅读(628) 评论(0) 推荐(0)
摘要:1.new 一个Thread子类(这里是一个内部类)通常写法如SubThread SubThread 2.new一个Runnable对象 ,面向对象的使用方式 方法2通常写法如下 Thread thread3=new Thread(new SubRunable()); thread3.start() 阅读全文
posted @ 2016-10-13 20:58 陈小兵 阅读(226) 评论(0) 推荐(0)