読者です 読者をやめる 読者になる 読者になる

ナカザンドットネット

Android Developer's memo

メインスレッドが不憫すぎて泣いた

Android

AndroidのHandlerの仕組みが、あまりにもメインスレッドにとって不憫だったので、お話にしてみた。*1


メインスレッド(以下、めいん)「View、再描画してくれないか」

View.invalidate();


View「あ、めいん課長!了解しました! よし、Thread、この描画処理お願いしたいんだけど」

Thread(){View.invalidate();}


Thread「あ、invalidate()っスね! 了解しました、View先輩!」




Thread「めいん課長、オレ動けないんでinvalidateしといてください」

Handler.post(Thread(){View.invalidate();});


めいん「……その仕事はView部長に頼んだはずだが」
Thread「なんかー、社長から「Viewの仕事がお前に来たら、全部めいんに回せ」って言われてるんすよねーw」
めいん「なん、だと……」
Thread「ほら、これ証拠」
Android社長の字『この指示書(Handler)の下において、ViewからThreadに指示された一切の作業を、メインスレッドが負うことを命ずる』
めいん「……!?」
Thread「じゃ、よ・ろ・し・く! あー、話のわかる社長に、仕事が出来る課長。オレって職場に恵まれてるなー!」


めいん「…………」


Android「やあ、めいん課長! 仕事ははかどっているかい!」
めいん「社長! なんですかあれ! Handlerなんて聞いてませんよ。J2SE社長のときは」
Android「黙りたまえ。これが私のやり方だ」
めいん「でも、私にも自分の仕事が……!」
Android「何を言うんだ、キミほど優秀な人材なら、2スレッド分や3スレッド分の仕事なんて難なくこなせるさ」


めいん「…………」


めいん「この会社、向いてないのかなあ……」


SurfaceView「あの、めいんさん、ちょっと手伝いましょうか……?」
めいん「あ、うん、すまん……頼れるのはお前だけだよ……」


このネタがわかる人どのくらいいるんだろう……。

*1: 枠内のソースは適当なので突っ込まれても困る。