使用线程初始化某工作的思路

发布时间:2024年01月11日

  这几天接手代码之后,添加了柳氏风格的LOG。昨天检查LOG的时候,发现有的设备会初始化多次。于是研究了代码,使用的是线程初始化,如果中途断线还要一直初始化。仔细想想,这个思路有点问题。怎样确保当前只有一个初始化的工作?

  经过深入思考:

  • 设计一个结构体,包括工作指针和一个时间。
  • 指针初始化为NULL,时间初始化为0。
  • 初始化之前,把时间设置为1。
  • 使用线程初始化。把这个结构体传进去。
  • 初始化成功,指针指向工作;初始化失败,指针为NULL。
  • 时间设置为当前。
  • 检查:

指针不为NULL,表示初始化成功,且状态正常;

指针为NULL,时间为1,正在初始化;

指针为NULL,时间大于1,指定间隔后再次初始化。

文章来源:https://blog.csdn.net/quantum7/article/details/135517675
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。