GDIコマンドの並列実行

GDI自体は非常にステートフルなインターフェースなのですが(この反省がGDI+には生きてる)Windows7では、案の定複数のHDCからのGDIコマンドを並列に分解して実行しているとのこと。

何となくそうじゃないかとは思ってたんですが、やっぱり。Windows95カーネルからWindowsNTカーネルにうつったとき、WM_PAINTがマルチスレッドで呼び出されていたとき以来の感動(WM_PAINT自体が排他だったんだよね)。ただ、ステートを復帰するコストが大きくて全体のスループットは落ちそうですね。ま、応答速度の方がスループットよりよっぽど重要か。画面の大部分は書き換わってないわけだし。
しかし……今までGDIって排他処理だったのか。beginpaintからendpaintまでかな? Javaだとどうしてたんだろ? paintComponentの最初と最後で排他処理してそうだなー。