Java concurrent 学习
ThreadFactory
public void threadPollTest(){/*** ThreadFactory 只是用来创建线程*/ThreadFactory threadFactory = Executors.defaultThreadFactory();Thread thread = threadFactory.newThread(() -> {Log.d(TAG , "new Thread");});thread.start();return;}
ThreadPoolExecutor
private void threadPoolExe(){/*** 线程池执行器* 只需要提供任务 而不需要关心线程的创建和销毁** future.get 方法是同步的 在等待任务结束** 就算超时了 future 里面其实还在执行的*/ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(5,8,5, TimeUnit.MINUTES,new ArrayBlockingQueue<Runnable>(5));Future<?> future = threadPoolExecutor.submit(new Runnable() {@Overridepublic void run() {try {Log.d(TAG,"future 执行");Thread.sleep(6* 1000);Log.d(TAG,"future 执行结束");} catch (InterruptedException e) {e.printStackTrace();}}});Log.d(TAG,"future 创建成功");try {future.get(5,TimeUnit.SECONDS);} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();} catch (TimeoutException e) {e.printStackTrace();future.cancel(true);}Log.d(TAG,"同步还是异步");}
Callable
/*** 不调用call 里面的代码不会执行* 而且call 也是在当前线程执行的* 不太懂callable 的意义*/public void callAbleTest(){Callable<String> callable = Executors.callable(new Runnable() {@Overridepublic void run() {Log.d(TAG, "callable : run start");try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}Log.d(TAG, "callable : run end");}}, "22222");//不调用call 里面的代码不会执行try {Log.d(TAG, "callable.call");String call = callable.call();Log.d(TAG, "callable.result " + call);} catch (Exception e) {e.printStackTrace();}}
ScheduleExecutorTest
/*** 延迟执行的一个执行器*/private void ScheduleExecutorTest() {ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(2);scheduledExecutorService.schedule(new Runnable() {@Overridepublic void run() {Log.d(TAG, "deley 200");}}, 200, TimeUnit.MILLISECONDS);scheduledExecutorService.schedule(new Runnable() {@Overridepublic void run() {Log.d(TAG, "deley 100");}}, 100, TimeUnit.MILLISECONDS);}
Java concurrent 学习相关推荐
- java concurrent包的学习(转)
java concurrent包的学习(转) http://my.oschina.net/adwangxiao/blog/110188 我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常 ...
- java多线程学习-java.util.concurrent详解
http://janeky.iteye.com/category/124727 java多线程学习-java.util.concurrent详解(一) Latch/Barrier 博客分类: java ...
- Java并发学习三:银行转账的死锁问题解决及示例
Java并发学习系列文章:Java并发学习-博客专栏 今天在学习极客时间专栏:<Java并发编程实战> 从03 | 互斥锁(上):解决原子性问题到06 | 用"等待-通知&quo ...
- Java并发学习之玩转线程池
2019独角兽企业重金招聘Python工程师标准>>> 线程池的使用姿势 基本上实际的项目不可能离开线程池,只是看你有没有注意到罢了 作为以业务需求为驱动,最顺溜的是写if-else ...
- [转]Java AIO学习
java AIO学习 转载 http://blog.csdn.net/zhongweijian/article/details/8005444 系统I/O 可分为阻塞型, 非阻塞同步型以及非阻塞异步 ...
- java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)
java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深 ...
- 深入浅出 Java CMS 学习笔记
转载自 深入浅出 Java CMS 学习笔记 引子 带着问题去学习一个东西,才会有目标感,我先把一直以来自己对CMS的一些疑惑罗列了下,希望这篇学习笔记能解决掉这些疑惑,希望也能对你有所帮助. 1. ...
- Java命令学习系列(二)——Jstack
转载自 Java命令学习系列(二)--Jstack jstack是java虚拟机自带的一种堆栈跟踪工具. 功能 jstack用于生成java虚拟机当前时刻的线程快照.线程快照是当前java虚拟机内每一 ...
- Java JUC学习 - ConcurrentLinkedDeque 详解
Java JUC学习 - ConcurrentLinkedDeque 详解 0x00 前言 如何实现并发程序,对于Java以及其他高级语言来说都是一件并不容易的事情.在大一上学期的时候,我们学习了链表 ...
最新文章
- 【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )
- 2.7 负采样-深度学习第五课《序列模型》-Stanford吴恩达教授
- boost::hana::one用法的测试程序
- servlet单实例多线程模式
- NandFlash详述
- XCode各种告警处理
- 图像目标检测识别,计算物体个数,针对电子元器件计算
- 统计机器翻译与神经机器翻译区别_几十年的领域专家告诉你,机器翻译进化到哪一步了?...
- WinAPI 数据类型
- 万字长文!浏览器是如何工作的:Chrome V8让你更懂JavaScript
- Android神器Xposed框架
- 安装mysql报msvcr100_解决安装mysql 提示msvcr100.dill 丢失,的最快方法
- android 高仿拼多多,Android 仿京东、拼多多商品分类页
- ruoyi增加导入导出
- After Effects CC SDK 使用指南(一)—— 序
- HDU 5544 Ba Gua Zhen (dfs独立回路异或消元)
- 头歌实训项目【复读机的毁灭】
- Markdown语法003:斜体和粗体、红色显示及其他字体颜色
- Ubuntu中动态库.so和静态库.a介绍
- 为什么信而富显示服务器开小差,剖析:信而富12点后也没额度的真相!
热门文章
- tensorflow 无法执行sess =tf .session ()_深度学习|费解的tensorflow
- 不同版本(2.3,2.4,2.5,3.0)的Servlet web.xml 头信息
- 「镁客·请讲」NOLO VR张道宁:空间定位技术加持下的VR,是可以搞出商业价值的...
- 值得期待的.Net Micro Framework 3.0
- 【Android】 01. APP 进程启动和 ActivityThread 的关系
- TensorFlow 1.0 正式发布 你需要知道的都在这里
- shell脚本编写乘法口诀
- 直播协议HLS技术要点分析:分段生成与m2u8文件
- django restfull centos6.5 x86_64 python2.7
- Apache的Rewrite规则详细介绍