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

网站图标在哪里修改网站dns服务

网站图标在哪里修改,网站dns服务,公司部门新年祝福语简短,北京有哪些网站建设公司1 将互斥机制的代码实现重新敲一遍 代码#xff1a; #includemyhead.hint num520;//临界资源//1.创建互斥锁 pthread_mutex_t fastmutex;//定义任务函数 void *task1(void *arg){printf(1111111\n);//3.临界区上面获取锁资源#xff08;上锁#…1 将互斥机制的代码实现重新敲一遍 代码 #includemyhead.hint num520;//临界资源//1.创建互斥锁 pthread_mutex_t fastmutex;//定义任务函数 void *task1(void *arg){printf(1111111\n);//3.临界区上面获取锁资源上锁pthread_mutex_lock(fastmutex);num1314;sleep(3);printf(task1:num %d\n,num); //1314//4. 释放锁资源pthread_mutex_unlock(fastmutex); }void *task2(void *arg){printf(2222222\n);pthread_mutex_lock(fastmutex);num; //521sleep(1); //休眠时任务1执行到赋值语句printf(task2:num %d\n,num);pthread_mutex_unlock(fastmutex); }int main(int argc, char const *argv[]) {//2.初始化互斥锁pthread_mutex_init(fastmutex,NULL);//线程创建pthread_t tid1,tid2;if(pthread_create(tid1,NULL,task1,NULL)!0){printf(tid1 create error\n);return 0;}if(pthread_create(tid2,NULL,task2,NULL)!0){printf(tid2 create error\n);return 0;}printf(tid1:%#lx, tid2:%#lx\n,tid1,tid2);//回收资源if(pthread_join(tid1,NULL)0)printf(tid1回收成功\n);if(pthread_join(tid2,NULL)0)printf(tid2回收成功\n);//5. 销毁锁资源pthread_mutex_destroy(fastmutex);return 0; }结果 2 将无名信号量的代码实现重新敲一遍 代码 #includemyhead.h//创建无名信号了 sem_t sem;//定义生产者线程 void *task1(void *arg){printf(1111111\n);int num 5;while(num--){//3.申请资源// sem_wait(sem);sleep(1);printf(我生产了一辆车\n);//4.释放资源sem_post(sem);}pthread_exit(NULL); }//定义消费者线程 void *task2(void *arg){printf(2222222\n);int num 5;while(num--){//3.申请资源sem_wait(sem);printf(我消费了一辆车\n);//4.释放资源// sem_post(sem);}pthread_exit(NULL); }int main(int argc, char const *argv[]) {//初始化无名信号量sem_init(sem,0,0);//第一个0:表示用于线程的同步//第二个0:表示初始资源为0//创建两个线程分别是生产者和消费者pthread_t tid1,tid2;if(pthread_create(tid1,NULL,task1,NULL)!0){printf(tid1 create error\n);return 0;}if(pthread_create(tid2,NULL,task2,NULL)!0){printf(tid2 create error\n);return 0;}printf(tid1:%#lx, tid2:%#lx\n,tid1,tid2);//回收资源if(pthread_join(tid1,NULL)0)printf(tid1回收成功\n);if(pthread_join(tid2,NULL)0)printf(tid2回收成功\n);//释放无名信号量sem_destroy(sem);return 0; }结果 3 将条件变量的代码实现重新敲一遍 代码 #includemyhead.h//1. 定义条件变量 pthread_cond_t cond;//11. 创建互斥锁 pthread_mutex_t fastmutex;//定义生产者线程 void *task1(void *arg){int num 5;while(num--){sleep(1);printf(%#lx:生产了一辆车\n,pthread_self());//3. 唤醒一个消费者pthread_cond_signal(cond);}pthread_exit(NULL); }//定义消费者线程 void *task2(void *arg){//33.临界区上面获取锁资源上锁pthread_mutex_lock(fastmutex);//4. 进入等待队列pthread_cond_wait(cond,fastmutex);printf(%#lx:消费了一辆车\n,pthread_self());//54. 释放锁资源pthread_mutex_unlock(fastmutex);pthread_exit(NULL); }int main(int argc, char const *argv[]) {//2. 初始化无名信号量pthread_cond_init(cond,NULL);//22. 初始化互斥锁pthread_mutex_init(fastmutex,NULL);//创建2个线程分别是生产者和消费者pthread_t tid1,tid2,tid3,tid4,tid5,tid6;if(pthread_create(tid1,NULL,task1,NULL)!0){printf(tid1 create error\n);return 0;}if(pthread_create(tid2,NULL,task2,NULL)!0){printf(tid2 create error\n);return 0;}if(pthread_create(tid3,NULL,task2,NULL)!0){printf(tid3 create error\n);return 0;}if(pthread_create(tid4,NULL,task2,NULL)!0){printf(tid4 create error\n);return 0;} if(pthread_create(tid5,NULL,task2,NULL)!0){printf(tid5 create error\n);return 0;}if(pthread_create(tid6,NULL,task2,NULL)!0){printf(tid6 create error\n);return 0;}printf(tid1:%#lx, tid2:%#lx, tid3:%#lx\ntid4:%#lx, tid5:%#lx, tid6:%#lx\n,tid1,tid2,tid3,tid4,tid5,tid6);//回收资源if(pthread_join(tid1,NULL)0)printf(tid1回收成功\n);if(pthread_join(tid2,NULL)0)printf(tid2回收成功\n);if(pthread_join(tid3,NULL)0)printf(tid3回收成功\n);if(pthread_join(tid4,NULL)0)printf(tid4回收成功\n);if(pthread_join(tid5,NULL)0)printf(tid5回收成功\n);if(pthread_join(tid6,NULL)0)printf(tid6回收成功\n);//5. 销毁条件变量pthread_cond_destroy(cond);//55. 销毁锁资源pthread_mutex_destroy(fastmutex);return 0; }结果 4 将无名管道的代码实现重新敲一遍 代码 #includemyhead.hint main(int argc, char const *argv[]) {//创建管道文件并返回该管道文件的文件描述符最小位分配原则int pipefd[2]{0};if(pipe(pipefd)1)PRINT_ERR();printf(pipedf[0]%d,pipefd[1]%d\n,pipefd[0],pipefd[1]);//创建一个子进程pid_t pidfork();if(pid0){//父进程//关闭管道的读端close(pipefd[0]);char wbuf[128];while(1){bzero(wbuf,sizeof(wbuf)); //清空数组内容fgets(wbuf,sizeof(wbuf),stdin); //从终端输入数据wbuf[strlen(wbuf)-1]0;//将数据写入管道文件中write(pipefd[1],wbuf,strlen(wbuf));//对写入的数据进行判断if(strcmp(wbuf,quit)0)break;}//关闭写端close(pipefd[1]);wait(NULL); //阻塞回收子进程资源}else if(pid0){//子进程//关闭写端close(pipefd[1]);char rbuf[128];while(1){//清空rbuf内容bzero(rbuf,sizeof(rbuf));//从管道文件中读取数据read(pipefd[0],rbuf,sizeof(rbuf));//输出rbuf的数据printf(父进程传来的数据为:%s\n,rbuf);//对读取的数据进行判断if(strcmp(rbuf,quit)0)break;}//关闭管道的读端close(pipefd[0]);exit(EXIT_SUCCESS); //退出进程}elsePRINT_ERR(); return 0; }结果 5 将有名管道的代码实现重新敲一遍 代码 #includemyhead.hint main(int argc, const char *argv[]) {//创建一个管道文件if(mkfifo(./myfifo, 0664) -1){perror(mkfifo error);return -1;}getchar(); //阻塞system(rm myfifo);return 0; } #includemyhead.hint main(int argc, char const *argv[]) {//打开管道文件int wfd1;//以只写的形式打开文件if((wfdopen(./myfifo,O_WRONLY))-1)PRINT_ERR();//定义容器char wbuf[128];while(1){bzero(wbuf,sizeof(wbuf)); //清空数组内容fgets(wbuf,sizeof(wbuf),stdin); //从终端输入数据wbuf[strlen(wbuf)-1]0;//将数据写入管道文件中write(wfd,wbuf,strlen(wbuf));//对写入的数据进行判断if(strcmp(wbuf,quit)0)break;}return 0; }#includemyhead.hint main(int argc, char const *argv[]) {//打开管道文件int wfd1;//以只读的形式打开文件if((wfdopen(./myfifo,O_RDONLY))-1)PRINT_ERR();//定义容器char rbuf[128];while(1){//清空rbuf内容bzero(rbuf,sizeof(rbuf));//将数据写入管道文件中read(wfd,rbuf,sizeof(rbuf));//输出rbuf的数据printf(父进程传来的数据为:%s\n,rbuf);//对读取的数据进行判断if(strcmp(rbuf,quit)0)break;}return 0; }结果 6 使用有名管道完成两个进程的相互通信(提示可以使用多进程或多线程完成) 代码 管道文件创建 #includemyhead.hint main(int argc, const char *argv[]) {//创建一个管道文件if(mkfifo(./myfifo1, 0664) -1){perror(mkfifo1 error);return -1;}if(mkfifo(./myfifo2, 0664) -1){perror(mkfifo2 error);return -1;}getchar(); //阻塞system(rm myfifo1);system(rm myfifo2);return 0; } 线程 #includemyhead.hint main(int argc, char const *argv[]) {//创建一个子进程pid_t pidfork();if(pid0){//父进程//打开管道文件int wfd -1;//以只写的形式打开文件if((wfd open(./myfifo1, O_WRONLY)) -1){perror(open error);return -1;}//定义容器char wbuf[128] ;while(1){printf(这里是1号机,请输入);fgets(wbuf, sizeof(wbuf), stdin);wbuf[strlen(wbuf)-1] 0;//将数据写入有名管道write(wfd, wbuf, strlen(wbuf));//判断结果if(strcmp(wbuf,quit) 0)break;}//关闭文件close(wfd); // wait(NULL); //阻塞回收子进程资源}else if(pid0){//子进程//打开管道文件int rfd -1;//以只写读的形式打开文件if((rfd open(./myfifo2, O_RDONLY)) -1){perror(open error);return -1;}//定义容器char rbuf[128] ;while(1){//清空数组bzero(rbuf, sizeof(rbuf));//读取管道中的数据read(rfd, rbuf, sizeof(rbuf));//输出结果printf(\t\t\t\t\t1号机收到的数据为%s\n, rbuf);//判断结果if(strcmp(rbuf,quit) 0)break;}//关闭文件close(rfd);exit(EXIT_SUCCESS); //退出进程}elsePRINT_ERR(); return 0; }#includemyhead.hint main(int argc, char const *argv[]) {//创建一个子进程pid_t pidfork();if(pid0){//父进程//打开管道文件int rfd -1;//以只写读的形式打开文件if((rfd open(./myfifo1, O_RDONLY)) -1){perror(open error);return -1;}//定义容器char rbuf[128] ;while(1){//清空数组bzero(rbuf, sizeof(rbuf));//读取管道中的数据read(rfd, rbuf, sizeof(rbuf));//输出结果printf(\t\t\t\t\t2号机收到的数据为%s\n, rbuf);//判断结果if(strcmp(rbuf,quit) 0)break;}//关闭文件close(rfd); // wait(NULL);// wait(NULL); //阻塞回收子进程资源}else if(pid0){//子进程//打开管道文件int wfd -1;//以只写的形式打开文件if((wfd open(./myfifo2, O_WRONLY)) -1){perror(open error);return -1;}//定义容器char wbuf[128] ;while(1){printf(这里是2号机,请输入);fgets(wbuf, sizeof(wbuf), stdin);wbuf[strlen(wbuf)-1] 0;//将数据写入管道write(wfd, wbuf, strlen(wbuf));//判断结果if(strcmp(wbuf,quit) 0)break;}//关闭文件close(wfd); exit(EXIT_SUCCESS); //退出进程}elsePRINT_ERR(); return 0; }结果
http://www.hkea.cn/news/14332817/

相关文章:

  • 怎么在网上卖东西教程seo排名优化技术
  • 手机h5建站如何将数据库导入网站
  • 浙江五联建设有限公司网站灰色行业怎么推广引流
  • 网站开发过程代码问题 解决网站管理系统制作
  • 婚嫁网站模板国际网站平台有哪些
  • 重庆有的设计网站广告公司起名大全最新
  • 网站开发公司的log做网站图片和文字字体侵权
  • 手机开发网站开发甘肃省建设厅注册中心网站首页
  • 公司网站后缀网站建设都需要哪些资质
  • 南通建设局网站查询石家庄百度关键词搜索
  • 开80服务器怎么做网站公司法人变更的基本流程
  • 做门户网站的营业范围做竞猜网站合法吗
  • 网站开发与维护实训总结在线教育网站开发方案
  • 微信如何建商城网站怎样为网站设计关键词
  • 建筑招工网站郑州手机端建站模板
  • 建设网站一般过程h5成品网站
  • 湖南做网站 安全还踏实磐石网络石家庄新闻频道直播
  • 给男票做网站表白的软件韩国做美食的视频网站
  • 做销售用什么网站好asp网站的缺点
  • 点匠网站开发流程沈阳建设工程项目管理中心
  • 网站建设推销员话术从哪些方面评价一个企业的网站建设
  • 苍南网站制作电商网站用php做的吗
  • 电商网站首页图片切换怎么做的网站备案地
  • 网站建设和维护管理预算做一家网站需要多少钱
  • 北京百度网站排名优化上海自贸区注册公司有什么好处
  • 找人做网站协议河北建设工程网站
  • 可以做家装设计的网站wordpress查询数据库插件
  • 国外机械做的好的网站北京高端网站建设案例
  • jsp做的零食网站下载网络架构必须满足哪些特性
  • 网站建设的趋势网站建设 软件有哪些