}
1.编译:gcc main.c -lpthread -g
2.运行:./a > 1 十几秒后ctrl c停掉
3.验证锁是否有效,以下两条命令都搜不到结果:
cat 1|grep thread_function_odd|grep "even:1"
cat 1|grep thread_function_even|grep "even:0"
4.去掉代码中的锁:注释#define mutex_lock
5.去掉后验证不加锁后是否正确,步骤3中的两条命令能搜到结果
cat 1|grep thread_function_odd|grep "even:1"
cat 1|grep thread_function_even|grep "even:0"
6.代码的原理:创建两个线程,两个线程都操作同一个整数,一个只把整数变为偶数,一个只把整数变为奇数,加锁的情况下,偶数线程中打印的数字全为偶数,奇数线程中打印的数字全为奇数
原文地址:http://blog.csdn.net/oywoywoyw/article/details/41963487