Accueil > > > TIMEOUT
TIMEOUT
Information sur la source
Description
Faire un timeout réutilisable
Source
- public abstract class Timeout {
- private class TimeoutThread implements Runnable {
- public void run() {
- Object res = command();
- synchronized (Timeout.this) {
- if (timedOut && res != null) {
- } else {
- result = res;
- Timeout.this.notify();
- }
- }
- }
- }
-
- private boolean timedOut = false;
- private Object result = null;
- protected Timeout() {}
-
- public synchronized Object execute(int timeout) throws Exception {
- new Thread(new TimeoutThread()).start();
-
- try {
- this.wait(timeout);
- } catch (InterruptedException e) {
- if (result == null) {
- timedOut = true;
- }else{
- commandTimeOut(result);
- }
- throw new Exception("timed out");
- }
-
- if (result != null) {
- return result;
- } else {
- timedOut = true;
- throw new Exception("timed out");
- }
- }
-
- /**
- * Command si on a un resultat ok mais que le timeout est eteind
- * @param result
- */
- protected abstract void commandTimeOut(Object result);
- /**
- * Command a executer
- * @return
- */
- protected abstract Object command();
-
- }
public abstract class Timeout {
private class TimeoutThread implements Runnable {
public void run() {
Object res = command();
synchronized (Timeout.this) {
if (timedOut && res != null) {
} else {
result = res;
Timeout.this.notify();
}
}
}
}
private boolean timedOut = false;
private Object result = null;
protected Timeout() {}
public synchronized Object execute(int timeout) throws Exception {
new Thread(new TimeoutThread()).start();
try {
this.wait(timeout);
} catch (InterruptedException e) {
if (result == null) {
timedOut = true;
}else{
commandTimeOut(result);
}
throw new Exception("timed out");
}
if (result != null) {
return result;
} else {
timedOut = true;
throw new Exception("timed out");
}
}
/**
* Command si on a un resultat ok mais que le timeout est eteind
* @param result
*/
protected abstract void commandTimeOut(Object result);
/**
* Command a executer
* @return
*/
protected abstract Object command();
}
Conclusion
Dans le fichier zip vous trouverez un exemple d'utilisation
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Wait & notify [ par fredou30 ]
Bonjour, j'essais de suspendre le déroulement d'une classe pendant que mon objet est en action.Voici mon code://Création de l'objet formulaireFormulai
Client thread [ par watoubilly ]
Bonjour, je voudrais faire un thread client TCP. Je n'ai pas de pb au nivo de la communication mais coté synchro de thread.Je voudrais faire un t
Thread. [ par etudev ]
bonjour a tous,Voila j'ai un probleme avec les threads et je ne sais pas comment m'y faire; je m'explique:je génère des threads en utilisant
Groupe de thread [ par pingstar ]
Bonjour,j'ai fiat une appli client/serveur. Mon serveur est multiclient, il lance donc un thread pour chaque demande de connexion. Ce que je voudrais
thread [ par mannoumona ]
je prépare un projet sur les systèmes multi agents et je veux simuler les agents de mon système à des threads mais je ne sai
thread java [ par amel2006 ]
bonjour ; dans mon application j'ai une variable m qui se rénitialise à chaque fois et j'ai pas trouver le moyen de creer m thread par un programme q
thread [ par amel2006 ]
bonjour;je lance m thread avec 2 paramètre (nom de fichier,param2)et ce thread creer un fichier avec le nom donnée en entrée
Recherche exemple java thread [ par Jarod1980 ]
Bonjour,Je recherche des exemples de Thread permettant d'effectuer des opérations arithmiques basiques (+,*,/). Par exemple, quelques choses du g
faire attendre un thread sur tous les autres différents [ par Flitzouille ]
Salut à tous je suis en train de programmer une application en Java et j'ai besoin des threads. J'en ai déjà eu besoin auparavant mais ici j'ai
Thread.sleep(1000) problème [ par Saris ]
Bonjour,Quand je fais ça : Thread.sleep(1000); dans la fonction protected void mouseReleasedAction(MouseEvent e)de ma classe &
|
Derniers Blogs
MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril SHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KITSHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KIT par Matthew
http://www.microsoft.com/download/en/details.aspx?id=28768&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+MicrosoftDownloadCenter+(Microsoft+Download+Center) ...
Cliquez pour lire la suite de l'article par Matthew
Forum
APPLICATION JARAPPLICATION JAR par yasseramiral
Cliquez pour lire la suite par yasseramiral
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|