https://blog.csdn.net/rqc112233/article/details/50015069
//g++ mute.cpp -o mute -g -lrt -lpthread #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <syslog.h> static pthread_mutex_t testlock; pthread_t test_thread; void *test(void *) { pthread_mutex_lock(&testlock); printf("thread Test() \n"); syslog(LOG_DEBUG, "thread Test() \n"); pthread_mutex_unlock(&testlock); } int main() { openlog("syslog", LOG_PID, LOG_DAEMON); pthread_mutex_init(&testlock, NULL); pthread_mutex_lock(&testlock); printf("Main lock \n"); syslog(LOG_DEBUG, "Main lock \n"); pthread_create(&test_thread, NULL, &test, NULL); sleep(3); //更加明显的观察到是否执行了创建线程的互斥锁 printf("Main unlock \n"); syslog(LOG_DEBUG, "Main unlock \n"); pthread_mutex_unlock(&testlock); sleep(1); printf("Main after sleep \n"); syslog(LOG_DEBUG, "Main after sleep \n"); pthread_join(test_thread, NULL); pthread_mutex_destroy(&testlock); closelog(); return 0; }
小技巧:借助syslog 记录时间 cat /var/log/syslog
输出:
Jul 5 16:23:24 Linux syslog[19982]: Main lock Jul 5 16:23:27 Linux syslog[19982]: Main unlock Jul 5 16:23:27 Linux syslog[19982]: thread Test() Jul 5 16:23:28 Linux syslog[19982]: Main after sleep