feeddictこの広告は、90日以上更新していないブログに表示しています。Blog2011年7月からnodeコアチーム7人のうちの1人になってたid:koichik(@koichik)さんが良記事認定してたエントリコアチームの人たちは、Joyentからは2人。ryan(@ryah)、npmの人(@izs)。Cloudkickからも2人。Geisendörferに@koichik。informativeな内容だが歯が立たない。Loop(補足)クライアントサイドコードの経験は、GTK+でのGUIプログラミングのことGNOME/GTK+ではイベントループが実装されてるおさらい。同期的コールバック/非同期コールバック同期的コールバック関数から返る前に、コールバックが呼び出されるコールバックを受信するAPIはスタックにまだ残ってる例えば、list.foreach(callback)リスト(list)の各メンバーに対してコールバックが実行された後で関数(foreach)から戻るこういう動きを使う側は当然期待する非同期コールバック遅延(deferred)コールバック、と呼ばれることも関数から戻った後で、コールバックが呼び出されるあるいは関数から戻る前に別スレッドのスタック上でコールバックが呼び出される遅延のためのメカニズムとしては、スレッドやメインループメインループの別名。「どっちも」はNG2:非同期コールバックの呼び出し元を限定するメインループ、メインのdispatchシステム、etc.が直接呼び出すコールバックを呼び出すメカニズムの中に間フレームとかを作らない。同期的コールバック、非同期コールバック。別スレッドでコールバックが呼び出される、場合あり非同期コールバックからはtouchできないものオリジナルのスレッドやスタックに紐付けられたもの例えば、ローカル変数、スレッド内で保持されてるローカルデータオリジナルスレッドがロックする可能性があるとき、コールバックはそのスレッドの外で呼び出される他のスレッドやイベントがアプリのステートを変化させる可能性があること。これを前提にしてコールバックを使うべき「非同期の方が偉い」とか、優劣がつく話じゃない。それぞれに使いどころlist.foreach(callback)同期的コールバックで出した例このコード使って、コールバックが遅延実行されて現在のスレッドでコールバックが何もしなかったら、たいてい驚くsocket.connetc(callback)非同期コールバックで出した例このコード使って、コールバックが遅延実行されなかったら、コールバック使ってる意味がない2つの例が示してることコールバックは同期的か非同期か二者択一にする同期ときどき非同期、という風にしない同期的コールバックと非同期コールバックでは目的が違う同期か非同期か。両方=NG頻出、ではないがありそうなケースたまにコールバックをすぐに呼び出せるようにしてるが、それ以外ではコールバックは遅延実行させる。同期コールバックと非同期コールバックが生み出す問題は別物ありそうなケーステスト環境ではコールバックは非同期的に呼び出すプロダクション環境では、コールバックを同期的に呼び出し、中断する。encyclopediaメインループやスレッドへ戻るまでコールバック実行を遅延させる代わりに、同期されたリソースからはあらゆるロックの可能性を取り除く作業できないことはないが、苦しい道ロックはスタックの中からポンポン湧いてくるスタックにあるあらゆるメソッドがコールバックを返すようにチェックすることに追われることになる内部的には、スタックのバックアップを取って、すべてのコールバックを外部のロックホルダーに渡し、ロックホルダー側で受け取ったコールバックのロックを解除し、コールバックを呼び出す。これを延々とHammersmithプロジェクト初期。})」これは擬似コード。書くとデッドロックにcorsorの繰り返し繰り返すたびにMongoDBのconnectionオブジェクトへ戻るクエリーのコールバックはconnectionオブジェクト内部のコードから呼び出される。message」メソッド使ってメッセージ発行はイベントループ経由デッドロック問題がこのモデルで解決することを期待してHammersmith書き直した一掃できなかった。ロックが起こる可能性のあるコールバック呼び出しが残ったアクターがメッセージ処理してる間はロックが起こるAkkaではアクターでは、別のアクターからもしくはFutureオブジェクトからのメッセージを受信可能Akkaでもデッドロックは発生する場合ありAkkaではオブジェクト内のメッセージ送信者をChannnelと呼んでるChannelへのインターフェースの中で「!」メソッドが使えるアクターを「!」で送信するとき、いつもメッセージはディスパッチャーへ戻るまで遅延されるしかしfutureオブジェクトへの送信のときの場合、常に遅延されない「Channel.!」はAPIが同期or非同期の定義から独立してる-これが問題を生む可能性があるアクターモデルでは。Czaplicki「脱FRP。月別アーカイブはてなブログをはじめよう!vwxyzさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。