2014-11-24 13 views
7

Qual è la differenza tra i metodi sync e await su netty? Entrambi bloccano il thread corrente?Differenza tra `sync` e` await` in netty

Grazie

+0

non ho idea di che cosa Netty è, ma qui è la differenza con l'aiuto di Google: [ 'Attendo '] (http://netty.io/4.0/api/io/netty/channel/ChannelFuture. html # await()) - ['sync'] (http://netty.io/4.0/api/io/netty/channel/ChannelFuture.html#sync()). – Maroun

+1

@ MarounMaroun Probabilmente è di questo che si tratta - questi documenti sono scritti male, e porterebbero molte persone a chiedere perché c'è sia un metodo di sincronizzazione che di attesa che sembra fare la stessa cosa. – nos

+0

Esattamente, ho letto quei documenti ma non riesco a capire la differenza. – simao

risposta

8

Mi sento come se non sono d'accordo, i documenti non sono scritti male. Esiste, ma tu leggi per leggere l'API. Tuttavia, se si sente qualche doc mancano, Netty ama contributi ;-)

Quindi per la vostra domanda: La differenza è davvero sync() sarà rigenerare il fallimento se questo futuro non è riuscita, mentre await() non (e se avete bisogno l'eccezione, è necessario chiedere che il futuro objet utilizzando cause() metodo

See API:.

http://netty.io/4.1/api/io/netty/channel/ChannelFuture.html#sync()

+1

L'interfaccia di sync() genera solo InterruptedException. Come è in grado di rilanciare un'altra eccezione, ad es. IOException? – Jochen

+0

Solo InterruptedException yes è consentito, ma in altri casi, è ChannelFuture che ospiterà l'eccezione. Vedi http://netty.io/4.1/api/io/netty/util/concurrent/Future.html#cause() –