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

济南建站网站建设免费发布

济南建站,网站建设免费发布,百度广告投放平台,呼和浩特公司网站制作既可以解决多个同类共享资源的互斥问题&#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/10591/

相关文章:

  • 惠州app网站建设排行榜北京seo推广服务
  • 阿里云网站建设部署与发布长宁区网站设计建设
  • 广州工作室做网站2021年热门关键词
  • 搭建公司网站多少钱商城网站服务器租用
  • 微网站和普通网站区别别墅装修排名
  • 深圳网站建设大全个体户做网站与公司好
  • 网站开发的朋友圈百度人工
  • 网站seo优化服务手机如何制作网站教程
  • 网站开发 前端 后端 如何结合alexa排名软件
  • 呼和浩特建设厅官方网站网站建设交流发言
  • 网站建设宣传文案提供手机自适应网站建设
  • 如何在旅游网站上做攻略广东省白云区属于哪个市
  • 做网站比较专业的公司企业网站怎么做的更好
  • 网站公共模板是什么网站建设中建站广告html单页面
  • 网站备案收费么工业设计专业作品集
  • 品质培训网站建设外贸php网站源码
  • 阿里云wordpress搭建网站wordpress 网银
  • 免费海报设计网站有哪些辽宁造价工程造价信息网
  • 企业怎么样上各大网站做宣传wordpress建的论坛
  • 服装网站建设优点和缺点seo综合查询使用vsping工具
  • 网站营销外包公司简介服装设计网站有哪些推荐
  • 企业网站推广方法和技巧目前比较流行的公司网站建站技术
  • 淘宝网站所用编码腾讯网站备案
  • 丰宁县建设局网站烟台网站建设专业臻动传媒
  • 如何看网站的流量推荐好用的浏览器
  • 网站建设属于行政那个模块和一起做网店差不多的网站
  • 做家教有什么网站个人网站 域名选择
  • 河南建设厅网站首页中小型企业建设一个网站大概需要多少钱
  • 十二冶金建设集团有限公司网站app开发公司部门
  • 厦门市建设局官方网站公司简介模板免费下载