当前位置: 首页 > news >正文

嘉兴网站建设嘉兴二手房出售信息

嘉兴网站建设嘉兴,二手房出售信息,内蒙网,申请一个域名1.信号量 在多线程情况下,线程要进入关键代码就得获取信号量(钥匙){sem_init(&sem, 0, 0);},没有信号量的情况下就一直等待sem_wait(&sem),只到别人把钥匙(sem_post(&sem))给你。 …

1.信号量

在多线程情况下,线程要进入关键代码就得获取信号量(钥匙){sem_init(&sem, 0, 0);},没有信号量的情况下就一直等待sem_wait(&sem),只到别人把钥匙(sem_post(&sem))给你。

这个sem_wait(&sem)后面的就是房子,每当等到别人给了我钥匙(就是等到了sem_post),这个时候就可以进入房子,每进入一次当前的钥匙就没了,下次进入还得等钥匙!

简单解释一下:

2. sem_init(&sem, 0, 0);

这个是创建一把钥匙,钥匙名字为了sem。

  1. 0:表示这个信号量是在进程间共享的,如果是非0值,则表示信号量只在当前进程中有效。
  2. 0:表示信号量的初始值。

3.sem_wait(&sem)

这个函数会一直阻塞在那,直到别人释放钥匙(信号量),才能让代码往下执行。

4.sem_post(&sem);

这个就是把钥匙给一个别人

以下是一个代码demo

#include <pthread.h>
#include <semaphore.h>
#include <stdio.h>
#include <string.h>
#include<unistd.h>
sem_t sem;void* change_resource(void* resource) {char* msg = (char*)resource;while(1){sem_wait(&sem);strcat(msg, "a");printf("resource changed with value: %s\n", msg);}return NULL;
}int main() {int ret;pthread_t thread;char msg[100] = "Initial ";ret = sem_init(&sem, 0, 0);if (ret != 0) {perror("sem_init");return 1;}ret = pthread_create(&thread, NULL, change_resource, (void*)msg);if (ret != 0) {perror("pthread_create");return 1;}while (1) {sem_post(&sem);printf("Semaphore send sem\n");sleep(1);}return 0;
}

以下是程序运行的结果

http://www.yayakq.cn/news/828960/

相关文章:

  • 麦包包的网站建设分析中英文企业网站
  • 区域网站设计宁波论坛招聘
  • 网站特效怎么做的我爱你域名的网站
  • 学校网站开发与实现的解决思路微信app下载安卓版官方下载
  • 西湖网站建设ftp查看网站后台密码
  • 网站建设的特点云服务器网站崩溃的原因
  • 专业模板网站制作多少钱局域网端口映射做网站
  • 织梦的手机端网站河南网络优化服务
  • 漳州做网站最便宜按效果付费的网络推广方式
  • 怎样增加网站的权重做外贸网站需要注意哪些
  • 如何用js做网站阳山网站seo
  • 网站制作和美工景安服务器安装wordpress
  • 网站建设 好公司长沙网站建设公司联系方式
  • 广西住房城乡建设厅网站怎么下载随申办app
  • 最新新闻热点事件2022年8月企业seo推广的绝密诀窍曝光
  • 织梦 公司网站模板wordpress 多域名绑定域名
  • 做网站客户怎么找wordpress 生命周期
  • 建设网站怎么添加端口映射wordpress去category
  • 网上网站怎么做如何制作多网页网站
  • 用phpcms做的网站模板泰安新闻
  • 游戏 网站 模板百度竞价外包
  • 网站总体设计就业合同模板
  • 网站备案能查到什么东西广州市天河区建设局网站
  • 无障碍网站建设的意义四川建设厅证网站是
  • 彬县网站建设黑帽seo技术论坛
  • 中国政务网站建设绩效评估网站的建设步骤
  • php网站iis设置域名抢注网站建设
  • 雄安免费网站建设成都建设银行合作装修网站
  • 虾皮跨境电商网站付费下插件wordpress
  • 市辖区郑州网站建设wordpress入门