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

网站如何做sem黄骅港信息吧

网站如何做sem,黄骅港信息吧,网站怎样绕过360认证,专业客户管理系统既可以解决多个同类共享资源的互斥问题&#xff0c;也可以解决简易的同步问题 头文件&#xff1a;#include <semaphore.h> 类型&#xff1a;sem_t 初始化&#xff1a;int sem_init(sem_t *sem, int pshared, unsigned int value); //程序中第一次对指定信号量调用p、v操…

既可以解决多个同类共享资源的互斥问题,也可以解决简易的同步问题

头文件:#include <semaphore.h>
类型:sem_t
初始化:int sem_init(sem_t *sem, int pshared, unsigned int value); //程序中第一次对指定信号量调用p、v操作前必须做初始化
清理:int sem_destroy(sem_t *sem);//程序中不再指定信号量时,应及时调用
P操作: int sem_wait(sem_t *sem);
V操作: int sem_post(sem_t *sem);功能:见函数名
返回值:成功为0,失败<0
注:pshared参数填零,本来是期望可以实现进程间使用的,Linux未实现

问题:线程1输出多个字符'a',线程2输出多个字符'b',要求打印的结果为abababab...


代码:
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <semaphore.h>sem_t sem1,sem2; // 初始化信号量void* pthread1(void *argv){for(int i = 0;i<10;i++){sem_wait(&sem1); // 如果信号量是1 就执行下面的代码(然后将sem1 置0),如果是0 就等待printf("a");fflush(stdout); // 冲刷缓冲区sem_post(&sem2); // 发送信号(将sem2 置1)}}
void* pthread2(void *argv){for(int i = 0;i<10;i++){sem_wait(&sem2);printf("b");fflush(stdout); // 冲刷缓冲区sem_post(&sem1); // 发送信号(将sem1 置1)}
}
int main(){pthread_t pth1,pth2;sem_init(&sem1,0,1); // 初始化信号量sem_init(&sem2,0,0);pthread_create(&pth1,NULL,pthread1,NULL);pthread_create(&pth2,NULL,pthread2,NULL);pthread_join(pth1,NULL);pthread_join(pth2,NULL);sem_destroy(&sem1);sem_destroy(&sem2);return 0;
}

输出:


问题:建三个线程,线程的ID分别是A,B,C,每个线程在屏幕输出自己的的ID 10 次,并且要求输出的顺序是:ABCABCABC.....(迅雷笔试题)


代码:
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <semaphore.h>sem_t sem1,sem2,sem3;void* print_a(void* argv){for(int i = 0;i<10;i++){sem_wait(&sem1);printf("A");fflush(stdout);sem_post(&sem2);}return NULL;
}void* print_b(void* argv){for(int i = 0;i<10;i++){sem_wait(&sem2);printf("B");fflush(stdout);sem_post(&sem3);}return NULL;
}void* print_c(void* argv){for(int i = 0;i<10;i++){sem_wait(&sem3);printf("C");fflush(stdout);sem_post(&sem1);}return NULL;
}int main(){pthread_t ph1,ph2,ph3;sem_init(&sem1,0,1);sem_init(&sem2,0,0);sem_init(&sem3,0,0);pthread_create(&ph1,NULL,print_a,NULL);pthread_create(&ph2,NULL,print_b,NULL);pthread_create(&ph3,NULL,print_c,NULL);pthread_join(ph1,NULL);pthread_join(ph2,NULL);pthread_join(ph3,NULL);sem_destroy(&sem1);sem_destroy(&sem2);sem_destroy(&sem3);return 0;
}

输出:

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

相关文章:

  • 单页面的网站模板免费下载用服务器做网站空间
  • 如何做网站模板常德县
  • wix怎么做网站教程设计工作室效果图
  • 电子工厂网站建设阿里接外包吗网站开发
  • 网站图片加载顺序企业要建设一个网站需要多少钱
  • ajax网站模板青海省安建设管理部门网站
  • 广州网站建设推广报价网站做的最好的公司
  • 简述电子政务系统网站建设的基本过程wordpress新增用户字段
  • 高端网站建设公司兴田德润在那里网站做推广有用吗
  • 网站统计有哪些辅导班
  • 怎么补网站漏洞国家信用信息公示系统广东
  • 如何设计网站民宿设计公司
  • 大专学网站开发与运营中劵资本集团股票交易网站建设中
  • 如何在百度做网站推广企业网站制作免费下载
  • 网站建设创业经历wordpress admin密码md5
  • 官网网站搭建我要自学网官方网站
  • 网站建设对数据库有何要求锋创科技园网站建设
  • 临沧市住房和城乡建设网站wordpress表单中文版
  • 网易邮箱163 com登录网站发的文章如何优化
  • 网站建设做什么会计科目有限公司和股份有限公司的区别
  • 对加强政务门户网站建设的意见跨境电商seo什么意思
  • 怎么做自己的彩票网站有自己的域名怎么建立网站
  • 网站建设添加汉语桂林两江四湖附近酒店
  • 快速做彩平图得网站上海企业网站建站
  • 一个网站 二级域名wordpress 邮件验证码
  • 企业网站备案网地址推广普通话作文300字
  • 上海网站建设上海员君seo网站排名推广
  • 网站后期维护工作包括哪些网站维护意义
  • 旅游网站对比模板网站开发怎么收费
  • 学校资源网站建设微信推广和网站推广哪个好