|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2008
Città: MilanoMilano Compravendite: 17
Messaggi: 3564
|
[Java] (Possibile) conflitto di thread in ascolto sullo stesso socket
Ciao amicici.
Mi trovo alle prese con un programma con socket multithread. Ci sono più client con un thread a loro dedicato. Il thread del socket è praticamente sempre in ascolto con un while(listening) iniziante con una lettura bloccante inputBufferedReader.readline(). A questo punto avrei la necessità di ascoltare l'input in altri thread del programma (sullo stesso socket). Immagino che due thread in ascolto sullo stesso socket potrebbero dare problemi. Quindi mi stavo chiedendo se esiste la possibilità di disabilitare temporaneamente la lettura dal ciclo nel thread del socket. La variabile booleana listening è interna al thread in questione.
__________________
CASE Cooler Master HAF-X & Mod LianLi HYDRO Corsair H100 PSU Corsair AX850W MB ASRock Z170 EXTREME 4
CPU i7 6700K VGA MSI GTX 1080 GAMING X RAM DDR3 2x8GB HyperX SSD OCZ Revodrive 80GB HDD RAID0 WD CB 1Tb DLP Optoma GT720 VR Oculus Rift MISCELLANEOUS 3D Vision 2 + Asus Xonar D2X + Sennheiser |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: May 2001
Messaggi: 12847
|
Quote:
|
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2008
Città: MilanoMilano Compravendite: 17
Messaggi: 3564
|
Alla fine ho risolto togliendo il while e salvando appunto i socket, il quale viene richiamato ad ogni necessità del server (senza quindi essere chiuso). Solo che in questo modo "comanda il server", nel senso che è lui a decidere quando mettersi in ascolto.
Grazie comunque. ![]()
__________________
CASE Cooler Master HAF-X & Mod LianLi HYDRO Corsair H100 PSU Corsair AX850W MB ASRock Z170 EXTREME 4
CPU i7 6700K VGA MSI GTX 1080 GAMING X RAM DDR3 2x8GB HyperX SSD OCZ Revodrive 80GB HDD RAID0 WD CB 1Tb DLP Optoma GT720 VR Oculus Rift MISCELLANEOUS 3D Vision 2 + Asus Xonar D2X + Sennheiser |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:44.