核心是关于幂等操作学习
package com.udp;
public class ThreadRun implements Runnable {
private boolean flag = true;
@Override
public void run() {
for (int i = 0 ; i< Integer.MAX_VALUE && flag ; i++){
System.out.println("i = " + i);
}
}
public void cancel(){
flag = false;
}
}
package com.udp;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
/*
* idempotent 幂等 操作, A^n = A ,幂等操作, 一个方法被调用多次和调用一次方法一样
*/
public class suplement {
public static void main(String[] args) {
/*
//一个方法被调用多次和调用一次方法一样
ThreadRun threadRun = new ThreadRun();
new Thread(threadRun).start();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
threadRun.cancel();
}
},3000);*/
//try - with -resouce
try(
//申请资源 Auto Closeable中的方法是以个非幂等操作,所以要么就try_with_resource
FileOutputStream fos = new FileOutputStream("a.txt")
//只有closeable或者AutoClosesable子类才可以放在小括号中
//int i= 0 ;
){
fos.write("hello".getBytes());
}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//要么就在这里自己关闭流资源
//二者选其一
}
}
}