上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: java在线程同步和互斥方面在语言和工具方面都提供了相应的支撑,与此同时,java还提供了一系列的并发容器和原子类,来使得并发编程更容易。 一。并发容器 (一)。同步容器 同步容器指的是容器本身使用synchronized关键字来同步访问,包括我们都知道的HashTable,也包括Vector和St 阅读全文
posted @ 2020-02-01 23:42 boiledwater 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 前面说了并发任务之间的分工和协作,现在说并发任务之间同样很重要,甚至更重要的一个方面,互斥。因为分工、协作和互斥这三个方面,从重要性上来讲,或许可以三分天下,但从复杂性和可探讨性来讲,互斥显然更胜一筹,对互斥的深入使用,更加体现了一个人的并发编程能力。 互斥,即同一时间只能有一个并发任务可以对数据的 阅读全文
posted @ 2020-02-01 00:26 boiledwater 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 在现实世界,不仅仅只有分工,还有协作,当异步执行的任务到了一定的阶段之后,还需要跟其他异步任务进行同步,这样才能开始下一个阶段的任务,Java在异步任务之间的协调或者同步机制上也提供了很多手段。按照介绍的顺序,提供的协调的灵活度越来越高。 一、Join join是Thread类型的一个方法,是一个简 阅读全文
posted @ 2020-01-15 10:30 boiledwater 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 一、Thread Runnable Callable Future FutureTask 这几个类型是并发任务在java中最基本的映射,Thread以及Runnable以及Callable毋庸赘言了,Future对应的是一个异步任务的引用,可以用来获取一个异步任务的结果,也可以用来判断一个异步任务是 阅读全文
posted @ 2020-01-13 21:08 boiledwater 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 一、为什么有并发 其实回答为什么要有并发,目的在于在合适的地方使用并发,只有在合适的地方使用并发,才会最大化的发挥并发的优势。 协调计算机不同设备间的速率。现代计算机由CPU、内存、硬盘、网络这几部分组成,其中CPU中还有寄存器。其中,CPU是计算发生的地方,寄存器、内存、硬盘和网络是数据存储的地方 阅读全文
posted @ 2020-01-12 22:53 boiledwater 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 无论您是在生产环境中运行Apache Flink or还是在过去将Flink评估为计算框架,您都可能会问自己一个问题:如何在Flink保存点中访问,写入或更新状态?不再询问!Apache Flink 1.9.0引入了State Processor API,它是DataSet API的强大扩展,它允许 阅读全文
posted @ 2019-11-22 08:58 boiledwater 阅读(1069) 评论(0) 推荐(0) 编辑
摘要: 前不久,Flink社区发布了FLink 1.9版本,在其中包含了一个很重要的新特性,即state processor api,这个框架支持对checkpoint和savepoint进行操作,包括读取、变更、写入等等。 savepoint的可操作带来了很多的可能性: 作业迁移 1.跨类型作业,假如有一 阅读全文
posted @ 2019-11-20 19:44 boiledwater 阅读(2226) 评论(3) 推荐(0) 编辑
摘要: 软件架构最佳实践、企业架构模式以及系统描述的正式方法都是非常重要且实用的工具,总会有合适的场景让它们发挥作用。但在设计系统时,请从简单始、以简单终,尽可能避免一切会无谓提高复杂度的架构与正式工具。 我的职责是设计和构建大型系统。我参与重写了 Uber 的分布式支付系统,设计并交付了 Skype on 阅读全文
posted @ 2019-11-07 09:17 boiledwater 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 技术架构,是将产品需求转变为技术实现的过程。技术架构解决的问题包括了如何进行纯技术层面的分层、开发框架选择、语言选择(这里以 JAVA 语言为主)、涉及到各自非功能性需求的技术点(安全、性能、大数据)。技术架构是确定组成应用系统实际运行的技术组件、技术组件之间的关系,以及部署到硬件的策略。 技术架构 阅读全文
posted @ 2019-11-07 09:14 boiledwater 阅读(940) 评论(0) 推荐(0) 编辑
摘要: Flink中的数据交换是围绕着下面的原则设计的: 1.数据交换的控制流(即,为了启动交换而传递的消息)是由接收者发起的,就像原始的MapReduce一样。 2.用于数据交换的数据流,即通过电缆的实际数据传输,被抽象为了IntermediateResult,并且是可插拔的。 这意味着系统可以使用同一实 阅读全文
posted @ 2019-10-09 10:12 boiledwater 阅读(2652) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页