linux多线程学习设置线程调度权限
pthread_setschedparam 设置线程的权限
int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param *param)
参数 1. target_thread是使用pthread_create所获得的线程ID。
2.线程的调度有三种策略:SCHED_OTHER、SCHED_RR和SCHED_FIFO。Policy用于指明使用哪种策略。下面我们简单的说明一下这三种调度策略。
SCHED_OTHER
它是默认的线程分时调度策略,所有的线程的优先级别都是0,线程的调度是通过分时来完成的。简单地说,如果系统使用这种调度策略,程序将无法设置线程的优先级。请注意,这种调度策略也是抢占式的,当高优先级的线程准备运行的时候,当前线程将被抢占并进入等待队列。这种调度策略仅仅决定线程在可运行线程队列中的具有相同优先级的线程的运行次序。
SCHED_FIFO
它是一种实时的先进先出调用策略,且只能在超级用户下运行。这种调用策略仅仅被使用于优先级大于0的线程。它意味着,使用SCHED_FIFO的可运行线程将一直抢占使用SCHED_OTHER的运行线程J。此外SCHED_FIFO是一个非分时的简单调度策略,当一个线程变成可运行状态,它将被追加到对应优先级队列的尾部((POSIX 1003.1)。当所有高优先级的线程终止或者阻塞时,它将被运行。对于相同优先级别的线程,按照简单的先进先运行的规则运行。我们考虑一种很坏的情况,如果有若干相同优先级的线程等待执行,然而最早执行的线程无终止或者阻塞动作,那么其他线程是无法执行的,除非当前线程调用如pthread_yield之类的函数,所以在使用SCHED_FIFO的时候要小心处理相同级别线程的动作。
SCHED_RR
鉴于SCHED_FIFO调度策略的一些缺点,SCHED_RR对SCHED_FIFO做出了一些增强功能。从实质上看,它还是SCHED_FIFO调用策略。它使用最大运行时间来限制当前进程的运行,当运行时间大于等于最大运行时间的时候,当前线程将被切换并放置于相同优先级队列的最后。这样做的好处是其他具有相同级别的线程能在“自私“线程下执行。返回值 0表示设置成功 其他表示设置不成功
linux多线程学习设置线程调度权限相关推荐
- linux文件可以设置下载权限吗,linux文件权限说明(四)ACL-当前安全设置不允许下载该文件...
Linux文件权限一般针对的都是(user,group,others)三种身份,那么有没有单纯针对一个或多个用户或者一个或多个用户组的权限设定呢,这里就要提到ACL机制了. ACL(Access Co ...
- linux 中 chmod设置文件权限的命令
chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限. 一般是三个数字: 第一个数字表示文件所有者的权限(User u) 第二个数字表示与文件所有者同属一个用户组的其他用户 ...
- linux多线程学习(三)——线程属性设置
在上一篇文章中,介绍了线程的创建和退出,以及相关函数的使用.其中pthread_create函数的第二个参数,是关于线程属性的设置,这也是今天所有讲述的.这些属性主要包括邦定属性.分离属性.堆栈地址. ...
- linux多线程学习(二)——线程的创建和退出
在上一篇文章中对线程进行了简单的概述,它在系统中和编程的应用中,扮演的角色是不言而喻的.学习它.掌握它.吃透它是作为一个程序员的必须作为.在接下来的讲述中,所有线程的操作都是用户级的操作.在LINUX ...
- linux用命令设置读权限,linux中的文件权限和chmod命令的使用
1.linux中的文件权限 linux中用ls -al列出文件列表时,会看到第一列有rwx这样的字样,这个表示该文件的权限设置属性.在linux中,权限划分主要分为三种身份:所有者(owner或者us ...
- Linux 基础学习:文件权限与种类
1.文件权限 linux系统中通过 "ls -al",可查看当前目录的所有文件的详细信息. 第一列代表这个文件的类型与权限: 第一个字符表示文件类型: [d]:表示目录文件 [-] ...
- linux多线程学习(七)——实现“生产者和消费者”
在上一篇文章中,利用信号量实现了线程间的互斥,这一篇将要利用信号量的互斥同步机制来实现一个经典实例,就是"生产者和消费者". 1.简单描述生产者和消费者的问题. 有一个缓冲区和两个 ...
- linux多线程学习(六)——信号量实现同步
在上一篇文章中已经用信号量来实现线程间的互斥,达到了互斥锁的效果,今天这篇文章将讲述怎样用信号量去实现同步. 信号量的互斥同步都是通过PV原语来操作的,我们可以通过注册两个信号量,让它们在互斥的问题上 ...
- linux多线程学习(五)——信号量线程控制
在上一篇文章中,讲述了线程中互斥锁的使用,达到对共享资源互斥使用.除了使用互斥锁,信号量,也就是操作系统中所提到的PV原语,能达到互斥和同步的效果,这就是今天我们所要讲述的信号量线程控制. PV原语是 ...
最新文章
- eclipse的remote search
- php 序列化有上限,总结对比php中的多种序列化
- 把Microsoft Office Excel/Word遇到问题
- J2EE中使用MediaInfo库获取视频信息
- sqlserver与mysql的一些不同的T-SQL语句
- Caffe神经网络结构汇总
- 两个前端项目利用iframe进行通信
- 熟练使用 Elastic Job系列之作业分片策略(五)
- 第一阶段✦第二章☞信息系统集成及服务管理
- 每日工作问题记录总结(好习惯 打卡2/?)
- java home websphere_websphere6.1安装与配置
- 数据中心网络融合技术DCB漫谈
- android bugly qq,Android如何快速集成腾讯Bugly
- “一线城市,年薪30万+,我却裸辞回老家”一个寒门贵子的10年职业思考
- 音频音乐与计算机的交融-音频音乐技术
- 介绍几种初学者学习电脑入门知识的方法
- 淘宝双11大数据分析(环境篇)
- 【二叉树】515. 在每个树行中找最大值
- 分享记录第一次在小鸟云网站备案
- cad画不规则实体_如何在CAD中徒手画不规则的图形