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 学习相关推荐

  1. java concurrent包的学习(转)

    java concurrent包的学习(转) http://my.oschina.net/adwangxiao/blog/110188 我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常 ...

  2. java多线程学习-java.util.concurrent详解

    http://janeky.iteye.com/category/124727 java多线程学习-java.util.concurrent详解(一) Latch/Barrier 博客分类: java ...

  3. Java并发学习三:银行转账的死锁问题解决及示例

    Java并发学习系列文章:Java并发学习-博客专栏 今天在学习极客时间专栏:<Java并发编程实战> 从03 | 互斥锁(上):解决原子性问题到06 | 用"等待-通知&quo ...

  4. Java并发学习之玩转线程池

    2019独角兽企业重金招聘Python工程师标准>>> 线程池的使用姿势 基本上实际的项目不可能离开线程池,只是看你有没有注意到罢了 作为以业务需求为驱动,最顺溜的是写if-else ...

  5. [转]Java AIO学习

    java AIO学习 转载  http://blog.csdn.net/zhongweijian/article/details/8005444 系统I/O 可分为阻塞型, 非阻塞同步型以及非阻塞异步 ...

  6. java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)

    java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深 ...

  7. 深入浅出 Java CMS 学习笔记

    转载自  深入浅出 Java CMS 学习笔记 引子 带着问题去学习一个东西,才会有目标感,我先把一直以来自己对CMS的一些疑惑罗列了下,希望这篇学习笔记能解决掉这些疑惑,希望也能对你有所帮助. 1. ...

  8. Java命令学习系列(二)——Jstack

    转载自 Java命令学习系列(二)--Jstack jstack是java虚拟机自带的一种堆栈跟踪工具. 功能 jstack用于生成java虚拟机当前时刻的线程快照.线程快照是当前java虚拟机内每一 ...

  9. Java JUC学习 - ConcurrentLinkedDeque 详解

    Java JUC学习 - ConcurrentLinkedDeque 详解 0x00 前言 如何实现并发程序,对于Java以及其他高级语言来说都是一件并不容易的事情.在大一上学期的时候,我们学习了链表 ...

最新文章

  1. 【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )
  2. 2.7 负采样-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. boost::hana::one用法的测试程序
  4. servlet单实例多线程模式
  5. NandFlash详述
  6. XCode各种告警处理
  7. 图像目标检测识别,计算物体个数,针对电子元器件计算
  8. 统计机器翻译与神经机器翻译区别_几十年的领域专家告诉你,机器翻译进化到哪一步了?...
  9. WinAPI 数据类型
  10. 万字长文!浏览器是如何工作的:Chrome V8让你更懂JavaScript
  11. Android神器Xposed框架
  12. 安装mysql报msvcr100_解决安装mysql 提示msvcr100.dill 丢失,的最快方法
  13. android 高仿拼多多,Android 仿京东、拼多多商品分类页
  14. ruoyi增加导入导出
  15. After Effects CC SDK 使用指南(一)—— 序
  16. HDU 5544 Ba Gua Zhen (dfs独立回路异或消元)
  17. 头歌实训项目【复读机的毁灭】
  18. Markdown语法003:斜体和粗体、红色显示及其他字体颜色
  19. Ubuntu中动态库.so和静态库.a介绍
  20. 为什么信而富显示服务器开小差,剖析:信而富12点后也没额度的真相!

热门文章

  1. tensorflow 无法执行sess =tf .session ()_深度学习|费解的tensorflow
  2. 不同版本(2.3,2.4,2.5,3.0)的Servlet web.xml 头信息
  3. 「镁客·请讲」NOLO VR张道宁:空间定位技术加持下的VR,是可以搞出商业价值的...
  4. 值得期待的.Net Micro Framework 3.0
  5. 【Android】 01. APP 进程启动和 ActivityThread 的关系
  6. TensorFlow 1.0 正式发布 你需要知道的都在这里
  7. shell脚本编写乘法口诀
  8. 直播协议HLS技术要点分析:分段生成与m2u8文件
  9. django restfull centos6.5 x86_64 python2.7
  10. Apache的Rewrite规则详细介绍