- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Linuxでスレッド優先度って変えられますか?[pthread C/C++])
Linuxでスレッド優先度を変更する方法とは?
このQ&Aのポイント
- Suse Linux 10を使用して、C++でスレッド(pthread)を用いたプログラムを作っています。スレッド優先度を設定する必要がありますが、一般ユーザでは優先度が効かないようです。super userでログインした場合には効果があるようです。一般ユーザとsuper userで優先度が異なる理由は何でしょうか?
- スレッドの優先度を変更する方法について詳しく教えてください。
- 一般ユーザでもスレッドの優先度は変更できるのでしょうか?どなたか詳しい方がいらっしゃいましたら、教えてください!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> ただ、シンプルにスレッド作成時に優先度設定できればいいんですがね。。。 スレッド作成時に指定したければpthread_attr_setschedparamを使えば良いですが、本質的には同じことです。内部ではsched_setscheduler(2)を使うでしょうから権限による制限は同じです。 # http://www.linux.or.jp/JM/html/glibc-linuxthreads/man3/pthread_attr_setschedparam.3.html
その他の回答 (1)
- rinkun
- ベストアンサー率44% (706/1571)
回答No.1
pthread_setschedparam等を使ってリアルタイムスケジューリングポリシーを設定するという話なら、Linuxのリアルタイムスケジューリングポリシーは基本的にはスーパーユーザしか使えません。 ただ最近のカーネルではあらかじめリソース制限 RLIMIT_RTPRIOを適切に設定しておけばスーパーユーザ以外でも使えるかもしれません。 man sched_setscheduler等を参照して下さい。 # http://www.linux.or.jp/JM/html/glibc-linuxthreads/man3/pthread_setschedparam.3.html
質問者
補足
ありがとうございます。 こちらでもできそうですね。 ただ、シンプルにスレッド作成時に優先度設定できればいいんですがね。。。
補足
そういうことなんですか。 内部では同じことなんですね。 その割りに余り権限による制限について打ち出した情報がなかったので、一般ユーザでも優先度↑ができるのかな~と思ってました。