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_OTHERSCHED_RRSCHED_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_RRSCHED_FIFO做出了一些增強功能。從實質上看,它還是SCHED_FIFO調用策略。它使用最大運行時間來限制當前進程的運行,當運行時間大于等于最大運行時間的時候,當前線程將被切換并放置于相同優先級隊列的最后。這樣做的好處是其他具有相同級別的線程能在“自私“線程下執行。
返回值 ?0表示設置成功 其他表示設置不成功

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252892.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252892.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252892.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

不可錯過的CMS學習筆記

引子 帶著問題去學習一個東西,才會有目標感,我先把一直以來自己對CMS的一些疑惑羅列了下,希望這篇學習筆記能解決掉這些疑惑,希望也能對你有所幫助。 CMS出現的初衷、背景和目的? CMS的適用場景? CMS的tr…

團隊合作及個人成長

通過前一章的學習,我了解到了關于建模的很多初步的知識,但是這和成為一名軟件工程師是遠遠不夠的,完成一個程序通常都是一個團隊,而這個團隊重要的肯定是需要一些流程,這樣才能讓程序有條不紊的運行著。在這么一個團隊…

相機工作原理

輕輕一按,你的相機就把光子轉換為了比特。于是一張相片就保存到了你的 iPhone 里。 讓我們假設一下你身處室外,環顧四周。三億里之外,太陽無時無刻不在發射光子。它們需要花上 8 分鐘之久才能到達我們舒適的星球。有一些光子撞擊到你周圍的物…

Android Studio使用心得

說實話 開始接觸這個工具 真的認為非常惡心 畢竟大陸被墻 非常多東西用起來不是非常方便 并且Eclipse轉到Android Studio還是一個跨度 廢話不多說 以下 講下我遇到的問題 1. 安裝的時候(Setup Wizard - Download Components) 這個要下載非常長時間 甚至…

CentOS用戶和用戶組的操作

2019獨角獸企業重金招聘Python工程師標準>>> CentOS用戶和用戶組的操作 長得太帥忚四種檌 關注 2018.05.12 16:40* 字數 312 閱讀 115評論 0喜歡 0 用戶組的操作 1.添加用戶組: groupadd 組名2.修改組名 groupmod -n 新組名 原組名刪除用戶組groupdel 組…

vue webpack配置分析

寫在前面:作為 Vue 的使用者我們對于 vue-cli 都很熟悉,但是對它的 webpack 配置我們可能關注甚少,今天我們為大家帶來 vue-cli#2.0 的 webpack 配置分析 vue-cli 的簡介、安裝我們不在這里贅述,對它還不熟悉的同學可以直接訪問 v…

Linux用戶空間與內核地址空間

Linux 操作系統和驅動程序運行在內核空間,應用程序運行在用戶空間,兩者不能簡單地使用指針傳遞數據,因為Linux使用的虛擬內存機制,用戶空間的數據可能被換出,當內核空間使用用戶空間指針時,對應的數據可能不…

關于主鍵的設計、primary key

主鍵:用于唯一標識一個表中一行數據。 外鍵:用于建立兩個表之間的關系,A表中有一列是B表中的主鍵,那么A表中這列的數據就受到B表主鍵的約束。 那么關于主鍵應該如何設計呢,這里我說下優缺點: 1.用自動增長字…

淺談微信smali注入

作者:郭少雷 搞android搞了幾年也沒搞出個啥牛逼app出來,眼看時下最火的app微信如此火熱,實在想搞搞它,索性就想著給它加點東西進去。 以下內容純屬本人個人愛好,僅限個人學習android用途以及對android的深入了解。 首…

從0到1使用Kubernetes系列(四):搭建第一個應用程序

上一篇文章《從0到1使用Kubernetes系列(三):使用Ansible安裝Kubernetes集群》中,我們搭建了一套Kubernetes集群,接下來將在本文中介紹如何使用Kubernetes部署一個Nginx并通過Pod IP、Service IP、Ingress這三種方式訪問…

Embeded linux之移植iptables

一、內核環境&#xff1a; linux-3.4.35 -*- Networking support ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration ---> <*> IP tables support (required for filtering/masq/NAT)…

Hadoop HIVE

數據倉庫工具。構建在hadoop上的數據倉庫框架&#xff0c;可以把hadoop下的原始結構化數據變成Hive中的表。&#xff08;主要解決ad-hoc query&#xff0c;即時查詢的問題&#xff09; 支持一種與SQL幾乎完全相同的語言HQL。除了不支持更新&#xff0c;索引和事務&#xff0c;幾…

Xcode9學習筆記67 - 打印查看程序沙箱結構中常用的幾個目錄

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//首先獲得應用程序目錄的路徑&#xff0c;在該目錄下有三個文件夾&#xff1a;文檔目錄、庫目錄、臨時目錄以及一個程序包。該目錄就是應用程序的…

檢測raid類型和磁盤壞道腳本

#!/bin/sh #腳本功能&#xff1a; #安裝工具MegaCli64 #Host Information&#xff1a;主機名和ip地址 #Raid Information&#xff1a;raid信息和充電狀態 #WARNING Information&#xff1a;MediaErrcount檢測壞塊和哪塊盤 #Disk Information&#xff1a;磁盤信息 #上傳MegaC…

簡單論述市場營銷管理的基本過程

http://www.chinadmd.com/file/uvc3uaosocwevsetrzpaereo_1.html

Javascript-Switch

JavaScript Switch 語句 請使用 switch 語句來選擇要執行的多個代碼塊之一。 語法 switch(n) { case 1:執行代碼塊 1break; case 2:執行代碼塊 2break; default:n 與 case 1 和 case 2 不同時執行的代碼 }工作原理&#xff1a;首先設置表達式 n&#xff08;通常是一個變量&…

《SpringBoot揭秘 快速構建微服務體系》讀后感(三)

SpringApplication&#xff1a;SpringBoot程序啟動的一站式解決方案 深入探索SpringApplication執行流程 因為書上的版本是1.2的&#xff0c;比較老&#xff0c;這里參考http://blog.csdn.net/zxzzxzzxz123/article/details/69941910 public ConfigurableApplicationContext ru…

裝飾器函數

1.裝飾器 ? 裝飾器&#xff1a;在不改變原函數的調用方式和函數&#xff0c;額外的增加功能 簡單裝飾器def timer(func):def inner():print(time.time())func() # 原來的函數return inner ? timer # func1 timer(func1) def func1():print(func1) 函數帶返回值def timer…

6G SDI/12G SDI 基帶信號無壓縮傳輸方案介紹

認知數字像素分辨率&#xff1a; 首先從分辨率(數字像素)角度來講&#xff0c;從標清時代走到高清&#xff0c;從720x576到現在的1920x1080&#xff0c;寬高比從4:3到16:9&#xff0c;這個是我們比較熟悉的&#xff0c;4K實際上是建立在高清基礎之上的&#xff0c;我們稱之為“…

4月18日

u盤丟了&#xff0c;毀滅性的災難 希望明天可以找到它&#xff0c;不然萬字的策劃案就要重寫 這是一個災難 轉載于:https://www.cnblogs.com/dandansang/p/6731174.html