Linux c语言sleep多线程while循环实验
sleep(0)或者没有sleep
/* thread_test.c */#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>#define NUM_THREADS 16pthread_mutex_t mutex;void *PrintHello(void *args)
{int thread_arg;thread_arg = (int)(*((int*)args));while(1){// pthread_mutex_lock(&mutex);// pthread_mutex_unlock(&mutex);if(1 == thread_arg){printf("Hello from thread %d\n", thread_arg);}if(12 == thread_arg){printf("Hello from thread %d\n", thread_arg);}//sleep(0);}return NULL;
}int main(void)
{int rc,t;pthread_t thread[NUM_THREADS];pthread_mutex_init (&mutex, NULL);for( t = 0; t < NUM_THREADS; t++){printf("Creating thread %d\n", t);rc = pthread_create(&thread[t], NULL, PrintHello, &t);if (rc){printf("ERROR; return code is %d\n", rc);return EXIT_FAILURE;}sleep(1);}for( t = 0; t < NUM_THREADS; t++)pthread_join(thread[t], NULL);return EXIT_SUCCESS;
}
编译命令:gcc thread_test.c -o thread_test -pthread
打印一段时间的“Hello from thread 1”后再打印“Hello from thread 2”。
sleep(0)或者没有sleep,thread1和thread2都能抢到cpu。
测试环境是8核cpu。
thread 1和thread 12都能打印,8个cpu核都是100%使用。
似乎即使不用sleep,也不会一直占用cpu(导致线程间不能正常切换)。
参考:
pthread_create_百度百科 (baidu.com)
Linux c语言sleep多线程while循环实验相关推荐
- linux c语言 线程sleep有关测试总结
1.线程中不使用sleep,不会造成线程切换问题. 2.线程中使用sleep,会使cpu的占有率降低.让其他线程或进程,运行得更有效. 3.使用sleep(0)和不使用sleep,效果差别不大,都不会 ...
- linux C语言多线程库pthread中条件变量的正确用法逐步详解
linux C语言多线程库pthread中条件变量的正确用法: 了解pthread常用多线程API和pthread互斥锁,但是对条件变量完全不知道或者不完全了解的人群. 关于条件变量的典型应用,可以参 ...
- 511遇见易语言大漠多线程自动切换账号循环登录任务模板
自动切换账号是多线程模板的一个变化应用,你有100个账号,每次开始10个线程,当第一批账号完成任务(登录,刷任务,退出)时,我们面临最困难的是如何在原有线程的基础上,自动开启下一批(第11-20)个账 ...
- 《Linux C编程环境》 课程大实验 及近期练习题:计算器,复写机,目录树创建,批处理执行器,扫雷
<Linux C编程环境> 课程大实验 及近期练习题:计算器,复写机,目录树创建,批处理执行器,扫雷 之前作业的题了,征求了老师的意见,同意我把个人解析放开公布,再提交作业已经无效了. ...
- linux C语言 常用函数(系统调用等) 持续更新
文章目录 系统调用是什么 Linux C语言 文件部分系统调用 1.open()打开文件 2.close()关闭文件 3.mkdir()创建目录 4.access()判断路径是否存在 5.fcntl( ...
- 实验一 进程同步与互斥c语言,进程互斥与进程同步实验
第三章 同步.通信和死锁 实验一:进程互斥与进程同步 进程的互斥和同步是操作系统课程的重要内容,本实验设计算法实现临界区的互斥进入以及进程的同步. 注意:因为进程的管理的权限属于操作系统,用户没有权利 ...
- c语言程序设计编程解读,C语言程序设计第三次实验报告解读
<C语言程序设计第三次实验报告解读>由会员分享,可在线阅读,更多相关<C语言程序设计第三次实验报告解读(15页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计实验报告专业 ...
- Linux与C++11多线程编程(学习笔记)
多线程编程与资源同步 在Windows下,主线程退出后,子线程也会被关闭; 在Linux下,主线程退出后,系统不会关闭子线程,这样就产生了僵尸进程 3.2.1创建线程 Linux 线程的创建 #inc ...
- c语言应用报告,C语言:数组的应用实验报告.doc
C语言:数组的应用实验报告.doc -1- 课程名称课程名称结构化程序设计与结构化程序设计与 C C 语言语言 开课实验室开课实验室 年年 月月 日日 年级年级.专业.班.专业.班 学号学号 姓名姓名 ...
最新文章
- Ubuntu管理开机自启动程序
- Netty:Java 领域网络编程的王者
- 3gpp文件头文件解析_居于LLVM 的命令行参数解析
- 用统计功能计算机计算js,js实现计算器功能
- C++ 通讯录设计(二)
- jquery 逗号分割截取字符串_Python中常用的8种字符串操作方法
- 2.0、Android Studio编写你的应用
- 分级时间轮优化普通时间轮定时器
- 英语句型之综合运用篇
- angular组件图标无法显示的问题
- 【0x50「动态规划」例题】LCIS【最长公共上升子序列】
- dojo实现省份地市级联---省份数据源
- [车]上海外地“苏牌”竟要万元
- 记录微信小程序createIntersectionObserver()方法的使用
- BootDo架构-基于 Springboot 和 Mybatis 的后台管理系统
- iOS生成图片分享到微信的一种方法
- 特斯拉Model X使用的是新密钥在几分钟内就被破解了
- Zabbix基于Dell系统管理OMSA监控物理服务器硬件
- 【CSS】总结前端三剑客之一(CSS基础)
- 黑马程序员--SpringBoot---基础篇
热门文章
- java opencv 保存图片
- UI设计大作业 Axure原型 “美食分享制作”app高保真原型设计
- 开源css库_使用CSS和其他开源工具创建标志
- 在Vue中使用HappyPack
- CF922D Robot Vacuum Cleaner 贪心+排序
- mysql的CURDATE()+1,月末不生效问题
- curl post表单上传文件(C++)
- “她力量”:创邻科技联合创始人吴菁获评创业邦“2022最值得关注的女性创业者”榜单
- cesium,实现下雨下雪效果切换
- Android_2D绘图的学习Paint,Canvas(二)