Java中深入浅析的慢行模式

  介绍

深入浅析Java中的慢行模式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

当现在不适合这个操作,或是没有必要进行这个操作时就直接放弃这个操作而回去。这个就是慢行模式

<强>程序示例:

程序的需求是模拟一个自动保存的功能。自动保存是为了预防计算机忽然断电或则软件突然出错的危险,定期将数据保存在文件里的功能。

1,数据类:表示是否修改,及修改函数的类
2, SaveThread类:定期保存
3, ChangeThread:修改数据,保存文件
4,主要:模拟数据

包org.zhy.demo04;
  进口java.io.FileWriter;
  进口java.io.IOException;
  进口java.io.Writer;/* *
  *表示是否修改,及修改函数的类
  * @author正意
  *
  */公共类数据{
  私人最终字符串文件名;//文件名称
  私人字符串内容;//修改内容
  私人布尔改变了;//是否可以修改//构造函数
  公共数据(字符串文件名,字符串内容){
  this.fileName=文件名;
  this.content=内容;
  }/* *
  *新的修改内容如果有新的需要保存的数据,改变的属性修改为真实的
  *注:这个方法是用同步修饰的
  *为了保护内容与改变属性用
  *同步修饰后就只能同时有
  * 1个线程访问也就防止了多线程造成的脏数据
  * @param newContent
  */公共同步孔隙变化(字符串newContent) {
  内容=newContent;
  改变=true;
  }/* *
  *保存
  */公共同步无效保存(){
  如果改变(!){//当变化值为假时直接出返回去
  返回;
  其他}{
  doSave();//调用保存方法
  改变=false;//保存后改变的值修改为假
  }
  }/* *
  *具体的修改方法,模拟写到文本中。
  */私人空间doSave () {
  System.out.println(“线程名称:“+ Thread.currentThread () . getname() +“,最新需要保存的值=?内容);
  尝试{
  作家作家=new FileWriter(文件名);
  writer.write(内容);
  writer.close ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  }
  }
  }
包org.zhy.demo04;/* *
  *定期保存的类
  * @author正意
  *
  */公共类SaveThread扩展线程{
  私人数据数据;
  公共SaveThread(字符串名称,数据数据){
  超级(名字);//线程名称
  this.data=https://www.yisu.com/zixun/data;
  }
  公共空间run () {
  尝试{
  而(真){
  data.save ();//模拟保存方法
  thread . sleep (1000);//休息1秒
  }
  }捕捉(异常e) {
  e.printStackTrace ();
  }
  }
  }
包org.zhy.demo04;
  进口java.util.Random;/* *
  *修改数据,保存文件的类
  * @author正意
  *
  */公共类ChangeThread扩展线程{
  私人数据数据;
  私人随机随机=new随机();
  公共ChangeThread(字符串名称,数据数据){
  超级(名字);//线程名称
  this.data=https://www.yisu.com/zixun/data;
  }
  公共空间run () {
  尝试{
  (int i=0;真实;我+ +){
  data.change(“没有:“+ i);//模拟的数据
  thread . sleep (random.nextInt (1000));//模拟去做别的事情
  data.save ();//明确的要求要保存
  }
  }捕捉(异常e) {
  e.printStackTrace ();
  }
  }
  }
包org.zhy.demo04;
  公开课主要{
  公共静态void main (String [] args) {
  数据数据=https://www.yisu.com/zixun/new数据(“数据。txt”、“我是默认内容”);//文件的名称及文件的默认内容
  新ChangeThread (“ChangeThread”数据).start ();//手动保存
  新SaveThread (“SaveThread”数据).start ();//自动保存
  }
  }

<>强运行结果:

深入浅析Java中的慢行模式

1,不需要刻意去执行的时候
2,不想等待警戒条件时
3,警戒条件只有一次成立时

看完上述内容,你们掌握深入浅析Java中的慢行模式的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

Java中深入浅析的慢行模式