• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Linuxでスレッド優先度って変えられますか?[pthread C/C++])

Linuxでスレッド優先度を変更する方法とは?

このQ&Aのポイント
  • Suse Linux 10を使用して、C++でスレッド(pthread)を用いたプログラムを作っています。スレッド優先度を設定する必要がありますが、一般ユーザでは優先度が効かないようです。super userでログインした場合には効果があるようです。一般ユーザとsuper userで優先度が異なる理由は何でしょうか?
  • スレッドの優先度を変更する方法について詳しく教えてください。
  • 一般ユーザでもスレッドの優先度は変更できるのでしょうか?どなたか詳しい方がいらっしゃいましたら、教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.2

> ただ、シンプルにスレッド作成時に優先度設定できればいいんですがね。。。 スレッド作成時に指定したければpthread_attr_setschedparamを使えば良いですが、本質的には同じことです。内部ではsched_setscheduler(2)を使うでしょうから権限による制限は同じです。 # http://www.linux.or.jp/JM/html/glibc-linuxthreads/man3/pthread_attr_setschedparam.3.html

参考URL:
http://www.linux.or.jp/JM/html/glibc-linuxthreads/man3/pthread_attr_setschedparam.3.html
goopon
質問者

補足

そういうことなんですか。 内部では同じことなんですね。 その割りに余り権限による制限について打ち出した情報がなかったので、一般ユーザでも優先度↑ができるのかな~と思ってました。

その他の回答 (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

参考URL:
http://www.linux.or.jp/JM/html/glibc-linuxthreads/man3/pthread_setschedparam.3.html
goopon
質問者

補足

ありがとうございます。 こちらでもできそうですね。 ただ、シンプルにスレッド作成時に優先度設定できればいいんですがね。。。