これらの2つの概念(「setcontext」、「Continuation」)は互いにどのように関係していますか? setcontext
テクニックを使用する場合、継続のインスタンスを作成しますか?ではなく、ヒープ - - 後でsetcontext()
かswapcontext()
経由で起動することができる方法でC内のsetcontext関数ファミリは継続していますか?
1
A
答えて
1
あなたがgetcontext()
、makecontext()
、またはswapcontext()
を経由して初期化しucontext_t
オブジェクトがスタックとCPUの状態を保持します。これは継続と同様です。
サブシステムは、継続を実装するという考え方で設計されていないようですが、sigsetjmp()
とsiglongjmp()
の改善点として設計されているようです。特に、コンテキストはシグナルマスクを取得し、コンテキストがアクティブになると復元されます。各コンテキストはまた、現在のコンテキストが終了したときに再開されるコンテキストの感覚を維持する。これらの感覚では、文脈は純粋な継続とは異なると考えられるかもしれない。
getcontext(
)
2、およびが現在あるすべての有効なコンテキストを取得するためにユーザコードには直接、非廃止予定の方法を残さない、POSIXによって非難ことに留意されたいです。 3引数のシグナルハンドラはまだ3番目の引数として1つを取得しますが、SuS/POSIXの最近のバージョンでは、そのコンテキストを再開するという効果が意図的に指定されていないため、かなり無駄です。
関連する問題
- 1. memoize継続継承スタイル関数
- 2. 関数内でjavascriptsの継続時間を設定する
- 3. 関数からwhileループを中断または継続する
- 4. 継続シーケンス番号は連続していますか?
- 5. 友人関係はC++で継承されていますか?
- 6. 関数型プログラミングの純関数はすべて連続していますか?
- 7. 続き:F#asyncワークフローまたはC#async関数で継続をシリアル化できますか?
- 8. printf関数ファミリとvprintf関数ファミリの違いは何ですか?また、どちらを使うべきですか?
- 9. C# - メッセージボックスは継続する許可を求めています
- 10. C++/C#コールバック継続
- 11. 仮想関数は継承で変わっていますか?
- 12. getcontextとsetcontextのソースコード
- 13. コード内の関数継続時間情報を取得する方法は?
- 14. C++ポインタは、関数呼び出し後に継承の値を失います。
- 15. C++継承時に関数の引数の名前を変更しますか?
- 16. クラウドデータフローストリーミングワーカーは継続使用ディスカウントを取得していますか?
- 17. C++は継続継承スタイルをどのように使用できますか?
- 18. C++ Linux getpeername IPファミリ
- 19. C++からC#関数を呼び出していますか?
- 20. このC関数は何をしていますか?
- 21. 継続トークン - CreateDocumentQuery ExecuteNextAsync関数が存在しません
- 22. オンチップフラッシュの書き込みと消去STM32F030ファミリでは連続してですか?
- 23. C++のsetcontext()について、この関数のコードをどのような場合に実行できますか?
- 24. C++の継承とフレンズ関数
- 25. 継承クラスのC++仮想関数
- 26. PHP:関数内の関数が内部関数に含まれています
- 27. C++継承された構造体の関数のパラメータとしてstruct関数を渡します。
- 28. NodaTimeは継続時間から秒数を取得します
- 29. 変数内の関数を参照していますか?
- 30. グループメンバーはアンドロイドでオープンファイアを継続していませんか?
私は、機能的プログラミングと手続き型プログラミングの違いは単純に違います。プロシージャプログラムは任意の明示的なローカルデータを持っているので、 'setcontext'はローカルデータを保存しますが、継続はデータを持たないと言われます。なぜなら、関数型プログラミングはそれを行う方法ではなく、何をするのかということなのです。つまり、何をすべきかを途中でやっているということです。コンピュータがそれを実行する際に発生したものは、おそらく格納されていますが、意味的には意味がありません。しかし、私の知識の程度は、私が答えとしてこれを確信するには不十分です。 – Tommy