互斥锁概念使用

互斥锁的创建两种方式

1.动态方式

 

互斥锁概念使用_第1张图片

 互斥锁概念使用_第2张图片

 互斥锁概念使用_第3张图片

 

#include 
#include 
#include 
#include 
FILE *fp;
void *func2(void *arg)
{
    pthread_detach(pthread_self());
    printf("this is func2 thread\n");
    char str2[]="i write func2 line\n";
    char c;
    int i=0;
    while(1)
    {
    while(i

从结果2.txt可以看出 写入文件的内容是乱的,因为文件是临界资源,两个线程同时写入会乱套,因此引入了互斥锁的概念

#include 
#include 
#include 
#include 

pthread_mutex_t mutex =PTHREAD_MUTEX_INITIALIZER;
FILE *fp;
void *func2(void *arg)
{
    pthread_detach(pthread_self());
    printf("this is func2 thread\n");
    char str2[]="i write func2 line\n";
    char c;
    int i=0;
    while(1)
    {
    pthread_mutex_lock(&mutex); //上锁
    while(i

 写入之前上锁,写入之后解锁   

可以看出文件中的写入内容是完整的。

互斥锁概念使用_第4张图片

 

2.静态方式

你可能感兴趣的:(算法)