Adaプログラミング言語では、ランデブーはプロセス間同期/メッセージ・パッシングの方法です。どのようにしてこのメカニズムをjavaで実装するのですか(タスクの中断と選択待ちと一緒に)?私はjavaのリモートメソッド呼び出しとExchangerクラスを見ていましたが、まだ適切な解決策を見つけるつもりはありません。 ADAしかしあなたはおそらくSynchronousQueue、BlockingQueue実装の1つを探している可能性があり示唆ADAのランデブーに簡単にGoogleに精通していないJavaのAdaランデブー対応者
答えて
。
おそらく、メッセージが渡されたときに何が起こりたいのかを説明すると、もっと役立つかもしれません。
私はSynchronousQueueと一緒に行くことにしました。基本的に私は、車を産んで走らせることができる8字形トラックを実装する課題を持っていました。私は彼らが交差点で墜落しないようにしなければならなかった。車のスレッドは、プロセスを追跡して前方に進むことができるかどうかを尋ねる呼び出しを行い、2台の車が交差点に到着した場合、交差点が空であればランダムなものが通過することができます。 – kbijoch
@kbijoch - 喜んでお手伝いしますが、あなたの説明は[Semaphore](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore.html)をもっと探しているように聞こえます。 )または[CountDownLatch](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CountDownLatch.html)ですが、 'SynchronousQueue'がうまくいく場合は、それを行ってください。 – OldCurmudgeon
ええ、私は知っていますが、私の教授は私たちにAdaのランデブーを具体的に実行するように指示しました。私はモチベーションがこのように振る舞っているのか分からないが、彼は私の解決策は大丈夫だと言った。 – kbijoch
Javaで実装するのが最も難しい部分は、選択的な待機とエントリのキューイングです。ブロッキングキューは、Adaの保護されたエントリの概略的なシミュレーションであり、選択的な待機はありません。
JavaのAda selectステートメントに相当するものはないと思います。また、プログラマが選択可能なキューイングポリシーを持つエントリキューに同等の機能を提供する方法もありません。 Javaのwait/notifyの組み合わせは、待機中のスレッドをアクティブにしますが、どのスレッドかを知ることはできません。 notifyコマンドによって実際に起動されるスレッドは、競合状態に基づいており、明らかにランダムであるという効果があります。解析では、待機中のスレッドはすべて、であると予想され、プログラム実行中のある時点で通知によってアクティブ化されると予想されますが、Javaではスレッドの起動順序が保証されていません。状態。
- 1. Java対応のマージコマンド
- 2. woocommerce wp_set_post_termsは管理者のみ対応
- 3. ASP.NETデータアクセスチュートリアルのJava対応版
- 4. Java対応&&は評価
- 5. Java対応クラス変数
- 6. Bonita 7.2非対応Java 7
- 7. 非同期タスク - Java対応
- 8. Java対応のエラー、私はXStreamの
- 9. 多言語対応のJavaスイングプログラム
- 10. 残り、確実なJIRAのJava対応
- 11. Javaのjava.util.Arrays.toString(...)メソッドに対応する.NET
- 12. Ada。
- 13. Javaに対応するxsd.exe/XMLSerializer?
- 14. ilasm/ildasmに対応するJavaバイトコード
- 15. Javaリファクタリング多相対応スイッチ/ if文
- 16. C++対応のC++対応アクション代入
- 17. デフォルトのリストのユーザータスク割り当て担当者タスクを設定する方法Java対応のAlfresco activiti
- 18. IdentityServer4 invalid_token Azureで「発行者が無効です」、ローカルホストで対応
- 19. AdaのHTMLエンティティコンバータ
- 20. AdaのAIライブラリフレームワーク
- 21. Adaのオペレーティングシステム
- 22. CLIPSのAdaラッパー
- 23. Ada:プラグマリスト
- 24. Ada:パッケージリンクエラー
- 25. ランデブーはどのように機能しますか?
- 26. Adaでのマルチスレッド化
- 27. Java/AdaビッグエンディアンからLinuxへLittle Endianの問題
- 28. Adaとアセンブリ
- 29. Ada Digits Confusion
- 30. Ada outパラメータ
Javaの並行処理機能が低レベル(エラーが発生しやすい)であることを考慮すると、それらを使用するAdaの高度な並行処理機能と同等の機能を実装できるはずです。問題は、あなたのプロジェクトがあなたにそれを費やすのにどれくらいの労力がかかるかということです。ランデブーセマンティクスが本当に必要な場合は、AdaとJavaで目的の動作を実装して予算管理者に提示するのにかかる時間を見積もってください。 –