首页 > 其他分享 >互斥锁(实验)(不严谨)

互斥锁(实验)(不严谨)

时间:2024-04-24 20:11:19浏览次数:27  
标签:ticketAmount 严谨 int lock 互斥 实验 pthread mutex

  1. 进程与进程的锁和线程与线程的锁是不一样的。
  2. abc三部曲
  • pthread_mutex_t lock =PTHREAD_MUTEX_INITIALIZER;//创建一个锁
  • pthread_mutex_lock(&lock);//上锁
  • pthread_mutex_unlock(&lock);//开锁
  1. 对于全局变量,共享数据就是临界区,需要使用锁。
int ticketAmount =2;
//这里定义一个pthread_mutex_t 
pthread_mutex_t lock=PTHREAD_MUTEX_INITIALIZER;

void* ticketAgent(void* arg){

//---------需要使用锁
  pthread_mutex_lock(&lock);

  int t =ticketAmount;
  if(t>0){
  printf("One ticket sold!\n");
  t--;
}else{
  printf("Ticket sold out!\n");
}
  ticketAmount=t;

//---------
  pthtread_mutex_unlock(&lock);

  pthread_exit(0);
}

标签:ticketAmount,严谨,int,lock,互斥,实验,pthread,mutex
From: https://www.cnblogs.com/zhudachang/p/18156225

相关文章

  • 8. Mutex Locks互斥锁
    临界区问题(critical-sectionproblem)Eachconcurrent(并发)processhasasegmentofcode,calledacriticalsection,inwhichtheprocessmaybechangingcommonvariables(公共数据),updatingatable,wrintingafile,andsoon.Theimportantfeatureofthesys......
  • XMU《UNIX 系统程序设计》第二次实验报告
    一、实验内容描述实验目的掌握与文件和目录树有关的系统调用和库函数。实验要求编写程序myfind命令语法myfind<pathname>[-comp<filename>|-name<str>...]命令语义(1)myfind<pathname>的功能除了具有与程序4-7相同的功能外,还要输出在<pathname>目录子树之下,文......
  • XMU《计算机网络与通信》第三次实验报告
    一、个人信息学号:**************姓名:###二、实验目的理解TCP和UDP协议主要特点掌握socket的基本概念和工作原理,编程实现socket通信三、实验任务与结果任务1前置任务开启两个终端窗口,分别编译、运行server_example.c和client_example.c,观察它们实现的功能。......
  • 20231325 贾罗祁 实验三《Python程序设计》实验报告
    20231325贾罗祁2023-2024-2《Python程序设计》实验三报告课程:《Python程序设计》班级:2313姓名:贾罗祁学号:20231325实验教师:王志强实验日期:2024年4月17日必修/选修:公选课1.实验内容创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套......
  • 实验二——需求分析
    一、实验题目:需求分析二、实验目的 1、掌握StarUML软件的安装; 2、掌握利用StarUML工具分析、设计、绘制用例图;3、掌握利用StarUML工具分析、设计、绘制类图;4、掌握利用StarUML工具分析、设计、绘制状态图;5、掌握利用StarUML工具分析、设计、绘制顺序图。6、掌握利用Star......
  • 忙等待互斥——Peterson解法
    ANSIC编写的Peterson解法抽象化表示如下:其中,turn是共享资源,两进程会进行抢夺。intertest[2]看似是共享资源,但intertst[0]只被进程1修改,intertst[1]只被进程2修改,可看作他们的私有资源。该算法核心原理是:“每个进程在进入临界区之前,只会修改turn1次”。假设1:线程1进入临界区......
  • 实验3
    task1.c点击查看代码#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain()......
  • 数字孪生系统:实验室基地园区的高效运营新引擎
    在科技飞速发展的今天,数字化转型已成为各行各业不可逆转的趋势。实验室基地园区作为科技创新的摇篮,其数字化升级更是刻不容缓。数字孪生系统作为数字化转型的得力助手,正以其独特的魅力,引领实验室基地园区走向智慧化、高效化的新纪元。 数字孪生系统就是通过数字技术将现实世界......
  • 实验3 C语言函数应用编程
    task1.c1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN8067voidprint_text(intline,intcol,chartext[]);//函数声明8voidprint_spaces(intn);//函数声明9voidpri......
  • 实验一-原型设计-虎扑评分APP
    一·对比分析墨刀,Axure,Mockplus等原型设计工具的各自的适用领域及优缺点。1.墨刀:适用领域:墨刀适用于快速原型设计和交互设计,特别适合于移动应用、网页和小型项目的设计,并且提供丰富的组件库。优点:用户界面简单直观,易于上手。提供了丰富的组件库和模板,方便用户快速创建原型。......