マルチスレッドアプリケーションの作成に異なる考え方を持たせるか、別のパラダイムがありますか?おそらく、プログラミングプログラミングのような手続き型プログラミングとはまったく異なると感じるものです。スレッディング・パラダイム?
答えて
同時実行性には、さまざまな問題に対してさまざまなモデルがあります。 concurrencyのWikipediaページにはいくつかのモデルが掲載されており、concurrency patternsのページもあります。これには、並行性にアプローチするさまざまな種類の出発点があります。
あなたが取るアプローチは、手元の問題に大きく依存しています。異なるモデルは、並行アプリケーションで発生する可能性のあるさまざまな異なる問題を解決します。
クラスIでは、並行性の問題を解決するために同時実行でmutual exclusionとsynchronizationを一緒に使用すると教えられました。一部のソリューションでは1つのみが必要ですが、どちらのソリューションでも同時実行性の問題を解決できるはずです。
大きく異なる概念のために、不変性と並行性を見ることができます。すべてのデータが不変の場合、従来の並行性のアプローチは必要ではありません。 This articleがそのトピックを探検します。
に見出すことができる(すべてを共有する)プロセス中心の並行性(アドレス空間分離に向かって)。このように、意図しないデータ共有を避けることができ、異なるサブシステム間で通信ポリシーを適用する方が簡単です。
このアイデアは古いもので、Micro-Kernel OSコミュニティによって伝播され、より信頼性の高いオペレーティングシステムを構築しています。興味深いことに、Microsoft ResearchのSingularity OSプロトタイプでは、このモデルで作業するときに従来のアドレススペースが不要であることが示されています。
私が気に入っている比較的新しいアイデアはtransactional memoryです。更新が常にアトミックであることを確認して並行性の問題を回避してください。
興味深いバリエーションについてはOpenMPを見てください。
- 1. cx_Oracleとデータソースのパラダイム
- 2. VBScriptスレッディング
- 3. スレッディングiPhone
- 4. ContentProviderスレッディング
- 5. "Convention over Configuration"パラダイムのメリット
- 6. 機能パラダイムの動的プログラミング
- 7. 機能パラダイムのJavaFX ContextMenu
- 8. スレッディング/同期化
- 9. Shoooesのスレッディング
- 10. シリアルポート、チェックボックス、スレッディング
- 11. スレッディング構造
- 12. Spidermonkeyのスレッディング
- 13. AppDomainとスレッディング
- 14. Blocking Readのスレッディング
- 15. スレッディングの基礎
- 16. OpenMPとMKLスレッディング
- 17. PyGTKとスレッディング
- 18. 'sys.excepthook'とスレッディング
- 19. スレッディング/ TPLなど
- 20. C#スレッディングとブロッキング
- 21. スレッディング実装
- 22. Java GUIスレッディング
- 23. JDBCとスレッディング
- 24. スレッディングとシングルトン
- 25. NSOperationとCoreDataスレッディング
- 26. Qtでスレッディング
- 27. VB.NET WPFスレッディング
- 28. urllib2とスレッディング
- 29. ASIHTTPRequest内のスレッディング
- 30. スレッディングと条件