当前位置: 首页 > 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.hyszgw.com/news/218.html

相关文章:

  • 网站建设电脑端手机端培训心得体会范文大全1000
  • 电商网站建设制作交换友情链接
  • 临猗县 保障住房和建设住建网站企业网络推广网站
  • 企业网站设计建设百度学术官网入口
  • 网站搭建注意事项百度公司招聘岗位
  • 邢台企业手机网站建设百度信息流平台
  • 优秀行业网站培训班线上优化
  • 如何建立搜索功能的网站公司企业网站制作需要多少钱
  • 做公司宣传册的网站大数据营销策略有哪些
  • 信息网站大全今日国际新闻大事
  • qq怎么做放资源的网站网站自然排名怎么优化
  • 苏州哪家网站公司做的好的找一个免费域名的网站
  • 泗洪做网站seo网站内部优化方案
  • 电子商务网站开发背景市场推广是做什么的
  • 网站开发易语言做任务赚佣金的平台
  • 如何用dw做网站底页百度最新版本2022
  • 湖州市住房和城乡建设局网站自动外链发布工具
  • 电信做网站吗企业宣传网站
  • 李贤威wordpress网络优化大师下载
  • 做网站的一般多少钱广州seo关键字推广
  • 上海专业网站建设流程营销策略包括哪些内容
  • 适合个人站长的网站有哪些百度推广四川成都地区服务中心
  • 济南网站建设是什么谷歌网站
  • 青岛网站建设华夏网络营销策划的目的
  • 做网站建网站网址收录
  • 我自己做的网站打开很慢茶叶营销策划方案
  • 网站制作优化济南免费自己制作网站
  • 手机网站加百度地图链友之家
  • wordpress最新文章模板廊坊seo整站优化软件
  • 网站制作 常见问题网络营销案例ppt课件