Balking模式】的更多相关文章

一,什么是Balking模式 如果现在不合适执行这个操作,或者没必要执行这个操作,就停止处理,直接返回.在Balking模式中,如果守护条件不成立,就立即中断处理. 二,例子: 定期将当前数据内容写入文件中,比如文本工具的自动保存功能,定期的将数据保存到文件中.当数据内容被写入时,会完全覆盖上次写入的内容,只有最新的内容才会被保存当写入的内容和上次的内容完全相同时,再向文件写入就多余了,所以就不再执行写入操作.所以这个程序就是以 数据内容不同 作为守护条件,如果数据内容相同,就不执行写入操作,直…
Balking模式讲的是如果现在不合适执行这个操作,或者没必要执行这个操作,就停止处理,直接返回 自动保存功能的实现逻辑一般都是隔一定时间自动执行存盘操作,存盘操作的前提是文件做过修改,如果文件没有执行过修改操作,就需要快速放弃存盘操作 public class Data { private final String filename; // 保存的文件名称 private String content; // 数据内容 private Boolean changed;// 修改后的文件尚未保存…
Balking[返回模式]timed[超时模式]一:balking pattern的参与者--->GuardedObject(被警戒的对象) --->该模式的角色:模拟修改警戒对象的线程,当警戒条件达到执行具体操作的线程,参与者(被警戒的参与者) 二:balking pattern模式什么时候使用--->不需要刻意去执行什么操作的时候(比如说自动保存)--->不想等待警戒条件成立时.(不让线程休息)--->警戒条件只有第一次成立时候. 三:balking pattern思考-…
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.concurrent.TimeUnit; public class Test { public static void main(String[] args){…
word自动保存功能,如果文档被修改了,后台线程每隔一段时间会自动执行保存功能,但是如果用户在自动保存之前用Ctrl+S手动保存呢?自动保存还会执行吗?答案是不会,因为这个操作时不需要重复做的. public class BalkingTest { public static void main(String[] args) { Data data = new Data("data.txt","(empty)"); new ChangerThread("C…
第1章"Single Threaded Execution模式--能通过这座桥的只有一个人" 该模式可以确保执行处理的线程只能是一个,这样就可以有效防止实例不一致. 第⒉章"Immutable模式--想破坏也破坏不了" Immutable模式,即实例一旦创建完毕,其内容便不可更改的模式.在该模式下,由于实例不会不一致,所以无需执行互斥处理,程序性能也能提高. 第3章"Guarded Suspension模式--等我准备好哦" Guarded Su…
学习方法 学习技术的方法都很类似,大部分都有着类似的步骤: 场景 需求 解决方案 应用 原理 并发的目的 充分利用CPU 和 I/O资源 提高效率 并发的维度 分工 同步/协作 互斥 分工 线程池 fork/join future Guarded Suspension 保护性暂挂模式 Balking模式 Thread per Message 模式 生产者-消费者模式 Worker thread模式 两阶段终止模式 -其他模式 同步/协作 信号量 Monitor Synchronized cond…
前言 对一个 Java 程序员而言,并发编程能否熟练掌握是判断他是不是优秀的重要标准之一.因为并发编程在 Java 语言中最为晦涩的知识点,它涉及内存.CPU.操作系统.编程语言等多方面的基础能力,更加考验一个程序员的内功深厚程度. 特别是当大数据时代的来临,高并发更加成为了家常便饭,在工作中,我们总是绕不开并发编程的任务.比如说,你想写个程序,一边从文件中读取数据,一边还要做实时计算-所以,想成为一名资深的 Java 后端工程师,并发编程是必须要牢牢把握的.那我们到底应该如何深入学习Java并…
Java:并发笔记-05 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 4. 共享模型之内存 本章内容 上一章讲解的 Monitor 主要关注的是访问共享变量时,保证临界区代码的原子性 这一章我们进一步深入学习共享变量在多线程间的[可见性]问题与多条指令执行时的[有序性]问题 4.1 Java 内存模型 JMM 即 Java Memory Model,它定义了主存.工作内存抽象概念,底层对应着 CPU 寄存器.缓存.硬件内存.CPU 指令优化等. JMM…
JUC学习笔记--共享模型之内存 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍: Java内存模型 可见性 模式之两阶段终止 模式之Balking 原理之指令级并行 有序性 volatile原理 Java内存模型 我们首先来介绍一下Java内存模型: JMM 即 Java Memory Model,它定义了主存.工作内存抽象概念,底层对应着 CPU 寄存器.缓存.硬件内存. CPU 指令优化等. JMM的主要作用如下: 计算机硬件底层的…