在开发程序过程中,免不了或多或少的使用标志位去方便自己控制程序,但是在使用标志位的过程中要时刻保持头脑清醒,自己设置的flag,跑到哪一步,都必须了解该flag的情况,不然痛苦的就如吃了xiang一样。
当时记得该献策和那个程序是在一个回调函数中使用,记录一秒钟之内所干的事情,一秒打印一次,可是最后由于脑子。。。导致标志位设置出错,故记录一次。惊醒之。。
bool create_thread_flag = false; //创建线程flag
bool packet_size_sum_flag = false;//计算某个值的flag
int m_count = 120; //定时器
pthread_t id_1=NULL;
int ret;
void* m_thread(void * arg)
{
usleep(1000*1000);
packet_size_sum_flag = true;
create_thread_flag = false;
pthread_exit(0);
}
fun_callback()
{
if(!create_thread_flag)
{
create_thread_flag = true;
ret = pthread_create(&id_1, NULL, m_thread, NULL);
}
if (packet_size_sum_flag)
{
//一秒所干的事情,
packet_size_sum_flag = false;
//计数器所做得事情
if (m_count == 120)
{
....
}
if (m_count == 90)
{
....
}
if (m_count == 60)
{
....
}
if (m_count == 30)
{
....
}
m_count--;
}
else
{
//一秒内所干的事情
}
}