- 浏览: 495825 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
Java的Future模式
runnable与thread的run方法是没有返回值的
thread.join()
join()方法的作用是调用线程等待该线程完成后,才能继续往下运行。
就是调用thread.join()的线程等待thread完成后才能继续往下运行
Callable接口可以看作是Runnable接口的补充,call方法带有返回值,并且可以抛出异常。
get方法:获取计算结果(如果还没计算完,也是必须等待的)
cancel方法:还没计算完,可以取消计算过程
isDone方法:判断是否计算完
isCancelled方法:判断计算是否被取消
put在放入数据时,如果放入数据的key已经存在与Map中,最后放入的数据会覆盖之前存在的数据,
putIfAbsent 如果传入key对应的value已经存在,就返回存在的value,不进行替换。如果不存在,就添加key和value,返回null
ConcurrentHashMap 和 HashMap 思路是差不多的,但是因为它支持并发操作,
在并发的环境下,通过FutureTask作为中间转换,成功实现了让某个方法只被一个线程执行。
https://www.cnblogs.com/cz123/p/7693064.html
当然也可以自己使用线程队列的方式实现
private static final int NEW = 0; //任务新建和执行中
private static final int COMPLETING = 1; //任务将要执行完毕
private static final int NORMAL = 2; //任务正常执行结束
private static final int EXCEPTIONAL = 3; //任务异常
private static final int CANCELLED = 4; //任务取消
private static final int INTERRUPTING = 5; //任务线程即将被中断
private static final int INTERRUPTED = 6; //任务线程已中断
FutureTask 调用run方法不会新建线程,只是普通的方法调用,但会更新FutureTask里的状态,调用get时也会被阻塞的
FutureTask里的get方法也是通过LockSupport来实现线程自我阻塞的
https://www.cnblogs.com/cz123/p/7693064.html(彻底理解Java的Future模式)
https://www.cnblogs.com/dolphin0520/p/3949310.html(Java并发编程:Callable、Future和FutureTask)
runnable与thread的run方法是没有返回值的
thread.join()
join()方法的作用是调用线程等待该线程完成后,才能继续往下运行。
就是调用thread.join()的线程等待thread完成后才能继续往下运行
Callable接口可以看作是Runnable接口的补充,call方法带有返回值,并且可以抛出异常。
get方法:获取计算结果(如果还没计算完,也是必须等待的)
cancel方法:还没计算完,可以取消计算过程
isDone方法:判断是否计算完
isCancelled方法:判断计算是否被取消
put在放入数据时,如果放入数据的key已经存在与Map中,最后放入的数据会覆盖之前存在的数据,
putIfAbsent 如果传入key对应的value已经存在,就返回存在的value,不进行替换。如果不存在,就添加key和value,返回null
ConcurrentHashMap 和 HashMap 思路是差不多的,但是因为它支持并发操作,
在并发的环境下,通过FutureTask作为中间转换,成功实现了让某个方法只被一个线程执行。
https://www.cnblogs.com/cz123/p/7693064.html
当然也可以自己使用线程队列的方式实现
private static final int NEW = 0; //任务新建和执行中
private static final int COMPLETING = 1; //任务将要执行完毕
private static final int NORMAL = 2; //任务正常执行结束
private static final int EXCEPTIONAL = 3; //任务异常
private static final int CANCELLED = 4; //任务取消
private static final int INTERRUPTING = 5; //任务线程即将被中断
private static final int INTERRUPTED = 6; //任务线程已中断
FutureTask 调用run方法不会新建线程,只是普通的方法调用,但会更新FutureTask里的状态,调用get时也会被阻塞的
FutureTask里的get方法也是通过LockSupport来实现线程自我阻塞的
https://www.cnblogs.com/cz123/p/7693064.html(彻底理解Java的Future模式)
https://www.cnblogs.com/dolphin0520/p/3949310.html(Java并发编程:Callable、Future和FutureTask)
发表评论
-
elasticSearch使用
2022-04-27 08:42 415ElasticSearch 基于Apache Lucene构建 ... -
IDEA 快捷键
2022-03-02 16:55 245大小写转换快捷键 ctr+shift+u IDEA ... -
每天学到的技术点3
2022-02-21 20:01 2451.TEXT与BLOB的区别,二者 ... -
zookeeper dubbo 安装
2021-12-04 19:27 313docker-machine ssh default d ... -
JVM 调优与测试
2021-05-22 22:24 580VisualVM 能够监控线程,内存情况,查看方法的CPU ... -
百度人脸识别
2021-05-21 16:11 362package com.gaojinsoft.htwy.y20 ... -
springboot tomcat 参数配置与数据库连接池多少的性能分析
2021-05-12 22:15 558参数配置与数据库连接池多少的性能分析 tomcat线程数 ... -
log4j2应用
2020-07-23 14:16 362https://blog.csdn.net/giventian ... -
文件上传下载
2020-07-06 13:16 4191.文件ID,名字(源,目标),大小,路径(/aa/bb/s. ... -
base64与file 相互转换
2019-10-23 18:19 774base64与file 相互转换 import org. ... -
百度身份证识别
2019-10-18 18:19 671package com.gaojinsoft.htwy.y20 ... -
JAVA 实用方法
2019-05-16 09:50 351//得到xml文件中的sql文本 public St ... -
导出内容到excel文件方法
2019-05-15 10:52 509@SuppressWarnings("rawtype ... -
要求fsss
2019-09-21 21:30 303/* */ package com.midea.com ... -
反射、类信息、动态代理、CGLIB动态代理原理与测试
2019-01-29 21:04 483package com.midea.common.classT ... -
JVM 监控工具
2019-01-21 18:04 381JVM 监控工具 //========== ... -
java 线程池线程复用原理
2019-01-15 17:10 1160java 线程池线程复用原理 其实就一个大run()把其 ... -
LockSupport原理
2019-01-11 18:01 699LockSupport原理 在Java语言中,每一个对象有 ... -
runnable与thread 区别
2019-01-11 14:49 681runnable与thread 区别 在java中可有两种 ... -
限流处理大量的并发请求
2019-01-07 16:42 772限流处理大量的并发请求 第一种方法:在容器中配置最大请求数 ...
相关推荐
老生常谈java中的Future模式 在 Java 中,Future 模式是一种常用的设计模式,用于处理并发编程中的多线程问题。在这个模式中,线程 A 需要等待线程 B 的结果,但线程 A 不需要一直等待线程 B,可以先拿到一个未来的...
Java的Future编程模式是Java并发处理中的核心概念,主要用于处理异步计算的结果。在Java的`java.util.concurrent`包中,`Future`接口...对于处理异步任务和并发编程的Java开发者来说,理解和掌握Future模式至关重要。
在Java并发编程中,Future模式是一种常见的设计模式,它允许主线程在不阻塞的情况下启动一个异步任务,然后在需要时获取任务的结果。Future模式的灵感来源于现实生活中的场景,如本文开头提到的买午餐和牙膏的例子,...
Java设计模式和并发编程是Java开发中的两个重要领域,它们对于构建高效、可维护的软件系统至关重要。设计模式是经过时间验证的解决常见问题的最佳实践,而并发编程则是利用多核处理器的优势,提高应用程序的执行效率...
通过程序范例和UML图示来一一解说,书中代码的重要部分加了标注以使读者更加容易理解,再加上图文并茂,对于初学者还是程序设计高手来说,这都是一本学习和认识JAVA设计模式的一本好书。(注意,本资源附带书中源...
《Java与模式》是一本深入探讨Java编程语言与设计模式结合的经典著作,旨在帮助开发者更好地理解和应用面向对象设计原则。源代码是书籍内容的重要组成部分,它提供了实际的示例,让读者可以动手实践,加深对书中理论...
Java提供了多种并发工具和API,如ExecutorService、Future、Semaphore、CountDownLatch等,帮助开发者有效地管理和协调并发任务。 接着,我们将会学习到Java中的线程和进程概念。线程是程序执行的最小单元,而进程...
在Java编程领域,多线程设计模式是一种至关重要的技术,特别是在构建高效、可扩展和并发的应用程序时。本文将深入探讨Java多线程设计模式及其源代码,旨在帮助开发者理解和应用这些模式,提升代码的并发性能和可维护...
5. **Future模式**:Future模式是一种并发设计模式,它提供了异步操作的结果。在Java中,`java.util.concurrent.Future`接口代表一个异步计算的结果,可以检查计算是否完成,取消计算,或者获取计算结果。通常与...
3. 同步和通信模式:探讨在多线程程序中,线程间的同步机制和通信手段,如信号量、栅栏、Future模式等。 4. 并发集合和映射的设计模式:介绍在多线程环境中,如何安全地使用集合数据结构,以及专门针对并发访问设计...
Future模式允许启动一个异步操作,并在后续代码中获取结果。Java的`Future`接口和`Callable`接口结合`ExecutorService`可以实现这一模式,提高程序的响应速度。 八、线程局部变量模式 线程局部变量(`ThreadLocal`)...
Java Future类是一种并发编程中的一种设计模式,Future它代表一个异步计算的结果。Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功或失败后作出相应的操作。 在...
《Java并发编程:设计原则与模式(第二版)》是一本深入探讨Java多线程编程技术的权威著作。这本书详细阐述了在Java平台中进行高效并发处理的关键概念、设计原则和实用模式。以下是对该书内容的一些核心知识点的概述...
在Java中,`java.util.Observable`类和`java.util.Observer`接口提供了对观察者模式的支持。 1. **`Observable`类**:代表被观察的对象,可以注册多个观察者,并在状态改变时通知它们。`Observable`类提供了`...
`Callable`和`Future`的组合是Java并发包中一个强大的工具,它弥补了`Runnable`接口的不足,使得异步编程可以获取到返回值并处理异常。同时,`ExecutorService`作为线程池的实现,为并发编程提供了一种优雅的解决...
5. **future模式**:Future接口代表异步计算的结果,可以查询计算是否完成,获取结果,甚至取消计算。CompletableFuture提供更强大的异步编程支持。 四、Java并发工具 1. **CountDownLatch**:用于计数,当计数到达...
Java多线程设计模式是构建高并发、高性能应用的关键技术之一。这些模式通过优化资源利用、提高程序可读性和可维护性,使并发编程更加高效和安全。以下将详细讲解标题和描述中涉及的一些核心知识点: 1. **线程池...
第9章 Future——先给您这张提货单 第10章 Two-Phase Termination——快把玩具收拾好,去睡觉吧 第11章 Thread-Specific Storage——每个线程的保管箱 第12章 Active Object——接受异步消息的主动对象 总结 多线程...
可以使用线程池、Future、CompletableFuture或者Java 8的流API来实现异步计算。对于报表生成,可以利用如Apache POI库处理Excel,或者使用JasperReports、iText等库生成PDF格式的报表。 总的来说,Java设计模式是...
6. **future模式**:用于异步计算结果,`Future`接口和`Callable`接口提供了未来获取结果的机制,如`ExecutorService`的`submit()`方法返回`Future`。 7. **线程局部变量模式**:每个线程拥有独立的变量副本,避免...