Simple délai d'attente en java
Quelqu'un peut-il me guider sur comment je peux utiliser un simple délai d'attente en java? En gros, dans mon projet, je suis à l'exécution d'une instruction br.readLine()
, qui est la lecture d'une réponse à partir d'un modem. Mais parfois, le modem ne répond pas. À cette fin, je veux ajouter un délai d'attente.
Je suis à la recherche d'un code comme:
try {
String s= br.readLine();
} catch(TimeoutException e) {
System.out.println("Time out has occurred");
}
- Comment ouvrir le lecteur?
- Faire de posté les réponses de répondre à votre question?
Vous devez vous connecter pour publier un commentaire.
Ce que vous cherchez peut être trouvé ici. Il peut exister un moyen plus élégant de le réaliser, mais une approche possible est
Option 1 (par défaut):
Option 2:
Ceux qui sont seulement un projet de sorte que vous pouvez obtenir l'idée principale.
Future.cancel
nécessite unboolean
comme argument dans Java8executor.shutdownNow()
, vous pouvezwhile (true) {try {if (executor.awaitTermination(1, TimeUnit.SECONDS)) break;} catch (InterruptedException ie) {}}
, en fait depuis l'arrêt de la tâche peut prendre un certain temps.L'exemple 1 ne compilera pas. Cette version de il compile et s'exécute. Il utilise lambda caractéristiques de l'écourter.
Utiliser cette ligne de code:
Il va dormir pendant 1 seconde.