Ada 프로그래밍 언어에서 랑데부는 프로세스 간 동기화/메시지 전달 방법입니다. Java에서이 메커니즘을 구현하려면 어떻게해야합니까 (태스크 일시 중단 및 선택 대기와 함께)? java의 원격 메서드 호출과 Exchanger 클래스를 살펴 보았지만 적절한 솔루션을 아직 찾지 못했습니다. ADA하지만은 당신이 가능 SynchronousQueue의 BlockingQueue 구현 중 하나를 찾고 될 수 있습니다 제안 ADA의 만남에 빠른 구글에 익숙하지자바의 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의 랑데뷰를 구체적으로 시행하라고 말씀하셨습니다. 나는 동기 부여가 이것을 behid 모르지만 그는 내 솔루션은 괜찮습니다 뭐든간에. – kbijoch
Java에서 구현하기 가장 어려운 부분은 선택적 대기 및 항목 대기열입니다. 블로킹 큐는 선택 대기없이 Ada에서 보호 된 항목의 대략적인 시뮬레이션입니다.
Java에서 Ada select 문과 동일한 항목이 있다고 생각하지 않습니다. 프로그래머가 선택 가능한 큐 정책을 사용하여 항목 대기열에 해당하는 기능을 제공 할 수있는 방법도 없습니다. Java 대기/알림 조합은 대기중인 스레드를 활성화하지만 어느 스레드인지는 알 수 없습니다. 알림 명령에 의해 실제로 활성화되는 스레드는 경쟁 조건을 기반으로하며 임의로 나타나는 효과가 있습니다. 분석 결과 모든 대기중인 스레드는 일 수 있으며 프로그램 실행 중 일부 시점에서 알림을 통해 활성화 될 것으로 예상되지만 스레드 활성화 순서에 대해 Java에서 보장 할 수는 없으며 주어진 스레드가 대기 모드에서 활성화 될 수도 있습니다 상태.
- 1. 프로세스 간 통신에서 랑데뷰 하시겠습니까?
- 2. ADA -
- 3. ADA
- 4. 대응
- 5. Ada - GCC를 사용하여 Ada 컴파일
- 6. Ada : 문자열 합법적 값?
- 7. 브라우저 창 도움말 window.postmessage에 대한 랑데뷰
- 8. 이메일 - 대응 ID
- 9. inet_pton() 대응
- 10. 사용하여 대응
- 11. Ada Makefile 바인딩 문제
- 12. Rational Apex Ada 컴파일러에서 GCC Ada 컴파일러로 마이그레이션
- 13. Ada : optimize 프라그 머
- 14. ADA Real_time 문자열
- 15. Ada Digits Confusion
- 16. 런타임시 Ada 제네릭
- 17. 왜 Ada 오류가 발생합니까?
- 18. Ada 제한 억제
- 19. GNAT 직렬 통신 (ADA)
- 20. Ada 문자열 연결 문자열
- 21. Ada AWS 설치 문제
- 22. Ada with Visual studio
- 23. Ada 인터럽트 핸들러
- 24. Ada 및 어셈블리
- 25. GtkAda로 ADA GPS 사용
- 26. Linux에서의 Ada GNAT.Serial_Communications 동작
- 27. Ada - File_Size를 정수로 변환
- 28. GPS에서 Ada 프로그래밍
- 29. Ada protected types
- 30. 제한된 유형의 Ada 반환
Java의 동시성 기능이 낮은 수준 (오류 발생 가능성이 높음)이기 때문에이를 사용하여 Ada의 높은 수준의 동시성 기능을 구현할 수 있어야합니다. 문제는 프로젝트가 얼마나 많은 노력을 기울여 그것을 소비 할 수 있는지입니다. 랑데뷰 의미론이 정말로 필요하다면 아마 Ada와 Java에서 원하는 동작을 구현하는 데 걸리는 시간을 예측하여 예산을 관리하는 사람들에게 제시해야합니다. –