/ / Komunikacja między wieloma wątkami - java, wielowątkowość, przesyłanie wiadomości

Komunikacja między wieloma wątkami - java, wielowątkowość, przesyłanie wiadomości

Mam określoną liczbę wątków, powiedzmy 5 wątków: A, B, C, D i E.

Chciałbym wiedzieć, jakie są niektóre konkretnepodejścia do zaprojektowania interfejsu komunikacyjnego między tymi wątkami, tak aby wątek odbiorcy mógł rozróżniać wiadomości od różnych nadawców. Ponadto każdy wątek powinien również móc wysyłać wiadomości do siebie.

Na przykład, czy mogę zaprojektować każdy wątek tak, aby miał wiele BlockingQueues, jeden dla każdego wątku nadawcy? Ponadto każdy wątek ma listę odbiorców, do których może wysyłać wiadomości? Czy to jest zalecane?

Jaki jest najlepszy / rozsądny sposób na wdrożenie tego w java?

Odpowiedzi:

1 dla odpowiedzi № 1

Chcesz interfejs przekazywania wiadomości między nimiwątek. Skonstruowałbym program, tworząc najpierw interfejsy przekazywania komunikatów, a następnie konstruując klasę wątku A i klasę wątku B oraz przekazując interfejs jako argument dla obu. Następnie rozpocznij wątki.

W przypadku java TransferQueue klasa wygląda na dobry wybór. Jeśli nie potrzebujesz niektórych jego funkcji, możesz także po prostu użyć ConcurrentLinkedList. Użyj dwóch do komunikacji dwukierunkowej.