博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程依次打印abcabc
阅读量:6206 次
发布时间:2019-06-21

本文共 1204 字,大约阅读时间需要 4 分钟。

网络原题:

编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输

出结果必须按ABC的顺序显示;如:ABCABC….依次递推

这里设置ITEM=4,即依次打印ABCDABCD……………………

#include 
#include
#include
/*int pthread_create(pthread_t*restrict tidp, * const pthread_attr_t *restrict_attr, * void*(*start_rtn)(void*),void *restrict arg);*//*第一个参数为指向线程标识符的指针。第二个参数用来设置线程属性。第三个参数是线程运行函数的起始地址。最后一个参数是运行函数的参数。*/#define ITEM 4struct { pthread_mutex_t mutex; pthread_cond_t cond; int i;}test={ PTHREAD_MUTEX_INITIALIZER,PTHREAD_COND_INITIALIZER,0};void PrintA(void *arg){ int num=*(int*)arg; int i; //printf("\n线程%d开始工作,我打印的是%c\n",pthread_self(),'A'+num); for(i=0;i<10;i++){ pthread_mutex_lock(&test.mutex); while(test.i!=num) pthread_cond_wait(&test.cond,&test.mutex); printf("%c",'A'+num); test.i=(test.i+1)%ITEM; pthread_mutex_unlock(&test.mutex); pthread_cond_broadcast(&test.cond); } //printf("\n线程%d完成任务\n",pthread_self());}int main(void) { pthread_t t[ITEM]; int i=1; printf("共有%d个线程\n",ITEM); for(i=0;i

运行结果:

共有4个线程ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD

 

 

 

转载于:https://www.cnblogs.com/sklww/p/3492997.html

你可能感兴趣的文章
NSString 小技巧
查看>>
python爬取智联招聘职位信息(单进程)
查看>>
archlinux/manjaro mysql安装[linux]
查看>>
用普通网络摄像头模拟Leap Motion追踪性能
查看>>
亲身经历——大体量公司能为程序员的生涯带来什么帮助?
查看>>
MVC、MVVM
查看>>
cocos2dx 3.x (单选,多选,复选checkBox按钮的实现) RadioButton
查看>>
Maven 插件打包部署项目
查看>>
最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用52
查看>>
list实现大整数加法
查看>>
记录一次批量处理文档的过程
查看>>
Webstorm2016使用技巧——SVN插件使用(svnToolBox)
查看>>
扩展 Windows Azure 运营能力 – 巴西
查看>>
android EditText长按屏蔽ActionMode context菜单但保留选择工具功能
查看>>
微信小程序左右滑动切换页面示例代码--转载
查看>>
大道至简:软件工程实践者的思想第二章读后感
查看>>
Floodlight中 处理packetin消息的顺序(2)
查看>>
服务器80端口被占用
查看>>
vue.js 解决空格报错!!!
查看>>
Sql Server数据库笔记
查看>>