文章目录模拟并发冲突出现该问题...下面的代码有个int型的num全局变量,　开启多　个　线程　同时对该num进行+1的动作,每个　线程　+1执行1000000次,所有　线程　执行完毕后,num的值应该等于　线程　数*1000000。但由于并发执行,结果是　文章目录　由于线程的并发性,导致多个线程同时对同一个全局变量进行操作时,会出现数据不一致的情况。　所以需要在线程中对全局变量的操作上互斥锁,来确保该操作同一时刻只能被一个线程进行,从而确保了数据安全。　模拟并发冲突　先不着急看互斥锁,先看下互斥锁可以解决什么问题。　下面的代码有个int型的num全局变量,开启多个线程同时对该num进行+1的动作,每个线程+1执行1000000次,所有线程执行完毕后,num的值应该等于　线程数*1000000　。但由于并发执行,结果是小于　线程数*1000000　的。　可以自行跑代码。　注意编译需要链接pthread库:　gcc　...　-lpthread　#　include　　#　include　　#　include　　int　num　=　0　;　//全局变量　/**　*　函数执行体。类似java中的Thread#run函数。　*　当函数体执行完毕,则线程结束。　*　@param　arg　创建线程时传入的参数。　*　@return　线程返回的结果,可以被创建该线程的父线程通过pthread_join获取。　*/　void　*　thread_proc　(　void　*　arg　)　{　for　(　int　i　=　0　;　i　　这个头文件中。　创建互斥锁有两种方式,一种是静态创建,另一种是动态创建:　-静态创建　pthread_mutex_t　mutex　=　PTHREAD_MUTEX_INITIALIZER　-动态创建　int　pthread_mutex_init(pthread_mutex_t　*mutex,　const　pthread_mutexattr_t　*attr);　:动态创建互斥锁　int　pthread_mutex_destroy(pthread_mutex_t　*mutex);　:释放动态创建的互斥锁资源　-上锁解锁　int　pthread_mutex_lock(pthread_mutex_t　*mutex);　:上互斥锁　int　pthread_mutex_un