Linuxカーネルの以下のAPIの違いを理解するのに役立つ人はいますか?
struct workqueue_struct *create_workqueue(const char *name);
struct workqueue_struct *create_singlethread_workqueue(const char *name);
私はサンプル モジュールを作成しました。それらを を使用して表示しようとするとps -aef
、両方ともワークキューが作成されましたが、違いはわかりませんでした。
http://www.makelinux.net/ldd3/chp-7-sect-6を参照し、LDD3 によると:
create_workqueueを使用すると、システム上の各プロセッサ専用のスレッドを持つワークキューが得られます。多くの場合、これらのスレッドはすべてやり過ぎです。単一のワーカー スレッドで十分な場合は、代わりに create_singlethread_workqueue を使用してワークキューを作成します。
しかし、複数のワーカー スレッド (それぞれがプロセッサ用) を確認できませんでした。