linux多线程

2.1、线程同步互斥锁

1、相关概述:
互斥锁主要用来实现对内核中临界资源互斥访问功能。
在这种情况下,每次只可以有一个线程运行。
2、遵守一定规则:
同一时间只能有一个线程使用互斥锁,并且由之解锁,互斥锁所在内存区域是无法被释放的,在互斥锁之前必须需要初始化。

2.2、相关API

1、初始化互斥锁:
pthread_mutex_t mutex;// 可以定义为全局变量

2、创建及其销毁

a、创建:int pthread_mutex_init(pthread_mutex_t *restrict mutex, const
pthread_mutexattr_t *restrict attr); pthread_mutex_t *restrict
mutex:这是一个指针 const pthread_mutexattr_t *restrict
attr:属性(一般使用默认属性NULL)

b、销毁:int pthread_mutex_destroy(pthread_mutex_t *mutex);

3、上锁解锁

a、上锁:int pthread_mutex_lock(pthread_mutex_t *mutex);

b、解锁:intpthread_mutex_unlock(pthread_mutex_t *mutex);

2.3、编程实践

linux多线程
linux多线程

2.4、运行结果

linux多线程
解析:t1 会保持先运行,直到t1调用pthread_exit结束后t2才开始运行。

有关于线程的创建,等待。退出。请在此观看:
线程创建,等待,退出

如有错误,敬请指正,每天学习,望明天更好。