linux降低线程优先级,Linux线程优先级,行为不正常
在下面的代码片段中,我创建了6个线程。各有不同的优先级。全局优先级数组中提到了优先级。我正在根据线索索引在每个线程内连续增加全局变量。如果线程优先级更高,我期待计数更高。但我的输出不遵循优先概念pl。请参阅下面显示的输出顺序。我在Ubuntu 16.04和Linux内核4.10上尝试了这一点。Linux线程优先级,行为不正常
O/P,
Thread=0
Thread=3
Thread=2
Thread=5
Thread=1
Thread=4
pid=32155 count=4522138740
pid=32155 count=4509082289
pid=32155 count=4535088439
pid=32155 count=4517943246
pid=32155 count=4522643905
pid=32155 count=4519640181
代码:
#include
#include
#define FAILURE -1
#define MAX_THREADS 15
long int global_count[MAX_THREADS];
/* priority of each thread */
long int priority[]={1,20,40,60,80,99};
void clearGlobalCounts()
{
int i=0;
for(i=0;i
global_count[i]=0;
}
/**
thread parameter is thread index
**/
void funcDoNothing(void *threadArgument)
{
int count=0;
int index = *((int *)threadArgument);
printf("Thread=%d\n",index);
clearGlobalCounts();
while(1)
{
count++;
if(count==100)
{
global_count[index]++;
count=0;
}
}
}
int main()
{
int i=0;
for(int i=0;i
create_thread(funcDoNothing, i,priority[i]);
sleep(3600);
for(i=0;i
{
printf("pid=%d count=%ld\n",getpid(),
global_count[i]);
}
}
create_thread(void *func,int thread_index,int priority)
{
pthread_attr_t attr;
struct sched_param schedParam;
void *pParm=NULL;
int id;
int * index = malloc(sizeof(int));
*index = thread_index;
void *res;
/* Initialize the thread attributes */
if (pthread_attr_init(&attr))
{
printf("Failed to initialize thread attrs\n");
return FAILURE;
}
if(pthread_attr_setschedpolicy(&attr, SCHED_FIFO))
{
printf("Failed to pthread_attr_setschedpolicy\n");
return FAILURE;
}
if (pthread_attr_setschedpolicy(&attr, SCHED_FIFO))
{
printf("Failed to setschedpolicy\n");
return FAILURE;
}
/* Set the capture thread priority */
pthread_attr_getschedparam(&attr, &schedParam);;
schedParam.sched_priority = sched_get_priority_max(SCHED_FIFO) - 1;
schedParam.sched_priority = priority;
if (pthread_attr_setschedparam(&attr, &schedParam))
{
printf("Failed to setschedparam\n");
return FAILURE;
}
pthread_create(&id, &attr, (void *)func, index);
}
linux降低线程优先级,Linux线程优先级,行为不正常相关推荐
- linux内核线程优先级设置,Linux c 线程属性,线程优先级的修改
Linux c 线程属性,线程优先级的修改 发布时间:2018-07-19 10:24, 浏览次数:1290 , 标签: Linux 线程属性的设置,网上找的文章总感觉不够全面,还是结合man手册查看 ...
- Linux 操作系统原理 — 进程与线程管理
目录 文章目录 目录 前言 进程与线程 内核线程,用户线程与轻量级进程 内核线程 轻量级进程 用户线程 轻量级进程与用户线程的区别 用户线程与轻量级进程的混合模式 用户线程和内核线程的区别 线程的实现 ...
- Linux下查看进程和线程
在linux中查看线程数的三种方法 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 2.ps xH 手册 ...
- Java线程之多线程与多进程(2)——线程优先级与线程安全
线程优先级 现在主流操作系统(如Windows.Linux.Mac OS X)的任务调度除了具有前面提到的时间片轮转的特点外,还有优先级调度(Priority Schedule)的特点.优先级调度决定 ...
- Linux系统编程----15(线程与进程函数之间的对比,线程属性及其函数,线程属性控制流程,线程使用注意事项,线程库)
对比 进程 线程 fork pthread_create exit (10) pthread_exit (void *) wait (int *) pthread_join (,void **)阻塞 ...
- linux进程和线程教程,Linux下查看进程和线程
在Linux中查看线程数的三种方法 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 2.ps xH 手册 ...
- linux下查看进程的线程数,linux查看进程的线程数
top -H -p $PID #查看对应进程的那个线程占用CPU过高 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行 ...
- Linux进阶之进程与线程
一.进程与线程 1.进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的 ...
- 【LWP,进程,线程】Linux
[前情提要]: 1.在Linux下,没有线程这个概念,而在Windows系统下有线程. 2.Linux下,用进程来模拟线程(这种模拟出来的线程叫做轻量级进程,简称LWP). 3.在Linux中(在CP ...
最新文章
- python编程中文版百度百科_1.2 搭建python+pycharm编程开发环境
- VTK:阴影灯用法实战
- python os.path.exists判断文件或文件夹是否存在
- 将一个字符串进行反转。将字符串中指定部分进行反转
- 【Format】ASF/WMV 文件格式解析
- 药到病除?功能性食品到底有没有用?关键还要看你的肠道微生物
- 计算机研究生学什么课本,计算机研究生到底该怎么读?
- python的argparse模块add_argument详解
- 仓库软件可以管理仓库,这么简单!
- 关于jupyter的故障重启(学习笔记)
- 回忆高中数学--概述“奇变偶不变,符号看象限”
- Bert实现意图分类
- autojs定时运行任务的例子,设置定时器,或者循环检测时间都可以实现
- 手机也能拍出艺术品?大师镜头,“真”突破了不少
- 高斯过程的matlab程序实现及其参数优化
- 音视频系列2:基本知识
- 阿里云大学考试Java高级题目及解析-java高级
- 马云的讲话,充满了对金融的“无知与傲慢”!
- 现在二维码频繁使用,它是唯一的且不会重复吗?哪里负责生成并管理二维码?
- LTE 时偏纠正 下行同步
热门文章
- Spring Cloud Alibaba迁移指南(四):零代码兼容 Api-Gateway 1
- 【实操手册】一篇文章教你快速开始使用视频点播
- ECS 按量付费VPC实例停机不收费FAQ
- 备战春招:阿里一面,给了几条SQL,问需要执行几次树搜索操作?
- 恭喜了!5 月逼自己学下这项技能,年薪 35 万起
- hooks的常用Api
- neon浮点运算_ARM 浮点运算详解
- wepy组件子父传值_【WePY小程序框架实战三】-组件传值
- java 线程 内存分配内存_漫谈JAVA语言的内存分配
- Vue + Spring Boot 项目实战(三):使用IntelliJ IDEA快速生成 Vue.js 项目