#循环 #检查 #执行 #线程 #已执行 #退出 #闭包

bin+lib time-check-loop

添加一个 README.md

2 个版本

0.1.1 2023 年 6 月 3 日
0.1.0 2023 年 6 月 3 日

#13#已执行

MIT 许可证

9KB
78

将需要执行的函数作为闭包传递到子线程中循环执行,

将需要执行的函数作为闭包传递到子线程中进行循环执行,

循环的同时有一个时间循环的线程配套,

同时还有一个时间循环线程与之配合,

需要执行的函数每次执行都会更新一次执行时间

需要执行的函数每次执行后都会更新一次执行时间

时间循环函数每次sleep时间为time_check,如果执行时间距离上次执行时间大于四倍time_check则退出循环

时间循环函数每次sleep时间为time_check,如果执行时间大于上次执行时间的四倍则退出循环

注意如果执行的函数中有阻塞(例如io输入),会发生时间循环子线程退出,函数执行循环子线程将一直等待直到有IO输入或者主函数退出

注意:如果执行的函数中有阻塞(例如IO输入),时间循环子线程将退出,函数执行循环子线程将一直等待,直到有IO输入或主函数退出

示例

 use std::thread;
 use std::time::Duration;
 //需要循环一次的函数
 //Functions that need to be iterated once
fn text_fn(i:u64) {
    let mut buffer = String::new();
    std::io::stdin().read_line(&mut buffer).unwrap();
    println!("text is {}",buffer);
    thread::sleep(Duration::from_secs(i));
    }
fn main() {   
    let time_check = 5;//单位为秒  Unit in seconds
      thread::spawn ( 
         move|| {
              time_check_loop::loop_time_check(move || {text_fn(1);},time_check); 
        }
     );
    loop{
    thread::sleep(Duration::new(5,0));
     };
}

无运行时依赖