スレッド (コンピュータ)

CPU利用の単位
マルチスレッドから転送)

thread[1]1[2]thread of execution

1GUII/O使調使使

スレッドとプロセスとタスク

編集

 (OS) CPU

CPU使OS使[3][1]

OS1111    OS    

使 使

調 (deadlock) 



1CPU111CPU (SMT) SMTCPU2SMTCPU1

ユーザースレッドとカーネルスレッド

編集

1

[][2]

ライトウェイトプロセス

編集

light-weight processLWPLWP

LWP2SolarisSVR4.2MPLWPLWPLWPα

LWPCCLWPLWPMNMNLWP

LWPC使使LWPLWPLWP

LWP

ユーザーインターフェイススレッド

編集

グラフィカルユーザインタフェースにおいては、デッドロックにまつわる複雑さを回避するためUIを操作するスレッドを1つに統一し、その上でワーカーデザインパターンを採用するという手法がよく採用される。

ライトウェイトスレッド

編集

light-weight thread

退:API

C#/VB.NET.NET

スレッドライブラリ

編集

CC++Microsoft WindowsWindows APIPOSIXOSPOSIX (Pthreads) APIJava.NET Framework/.NET Core

C++11Boost C++C11[7]

スレッドの暗黙的利用

編集



APIOpenMP.NET (TPL) Future API使API

脚注

編集

注釈

編集
  1. ^ 古いアーキテクチャや組み込み環境では、複数のプロセスがメモリ空間を共有しているシステムもある。例えばWin16などが挙げられる。
  2. ^ 例えば32ビット版のMicrosoft Windowsでは、個々のスレッドに割り当てられるスタックサイズが既定で1MiBとなっており、そのため1プロセスが生成できるスレッドの最大数(理論上限値)は既定で2,048までとなっている[4][5][6]。64ビット版Windowsでは理論上限値は緩和されるが、実際に生成可能なスレッドの数は物理メモリの搭載量に左右されることに変わりはない。

出典

編集

関連項目

編集