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
KIT DE FICHIERS DE PROGRAMMATIONKIT DE FICHIERS DE PROGRAMMATION C'est un ensemble de fichiers qui peuvent être facilement ajouté à vos projets.
Ils sont déversifié: son, image, options, timer, clavier, internet, ....
par edouard333
[J2ME] TROUVER LE PGCD DE DEUX NOMBRES[J2ME] TROUVER LE PGCD DE DEUX NOMBRESSalut les amis voici mon premier MIDlet, ma première appli pour portable.
C'est en regardant des sources de ce site que j'ai pu apprendre sur les MID...
par Zestyr
LIRE LES FICHIERS .WAVLIRE LES FICHIERS .WAV Cette classe permet de lire les fichiers .wav, de les mettre en pause, et de les reprendre en cours de lecture sans bloquer l'OS....
par Julien39
TRADUCTEUR FRANÇAIS --> NERLANDAIS V4 BETATRADUCTEUR FRANÇAIS --> NERLANDAIS V4 BETAC'est un traduction: Français - Néerlandais, Français - Anglais, Français - Japonais, et vice versa.
En fonction de la traduction demandé, les poss...
par edouard333
IA POUR DISCUTERIA POUR DISCUTER Ceci est une IA qui peut "parler" avec l'utilisateur, on a très peut de possibilité, mais aussi peut de chance de tomber dessus, et les dialogues sont...
par edouard333
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
PARUTION DE MON LIVRE SUR WPF 4PARUTION DE MON LIVRE SUR WPF 4 par odewit
La 2e édition de mon livre sur WPF sort aujourd'hui en version numérique et lundi en version papier :-)
L'ouvrage présente de façon approfondie les fonctionnalités de WPF 4 : graphisme 2D et 3D, animation, multimédia, interfaces utilisateur, databind...
Cliquez pour lire la suite de l'article par odewit EDM : COMMENT UTILISER L'HORIZONTAL ENTITY SPLITTINGEDM : COMMENT UTILISER L'HORIZONTAL ENTITY SPLITTING par Matthieu MEZIL
Une des raisons pour lesquelles j'adore l'Entity Framework est la puissance de son mapping. Beaucoup de développeurs pour ne pas dire la plus part n'en n'ont pas conscience. Pour rappel, j'ai réalisé des videos (en anglais) sur le mapping . Certains scena...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WP7DEV][REACTIVE] RENDRE LES REACTIVE EXTENSIONS PLUS STABLES[WP7DEV][REACTIVE] RENDRE LES REACTIVE EXTENSIONS PLUS STABLES par jay
Lorsque l'on développe des applications .NET, les exceptions non gérées dans des threads ont le désagréable effet de terminer le processus courant.
Dans l'exemple suivant.......(read more) ...
Cliquez pour lire la suite de l'article par jay WINDBG / SOS / PSSCOR2 : FAILED TO LOAD DATA ACCESS DLL (MSCORDACWKS)WINDBG / SOS / PSSCOR2 : FAILED TO LOAD DATA ACCESS DLL (MSCORDACWKS) par coq
Ceux d'entre nous qui analysent des dumps d'applications .NET (notamment ceux créés via WER après un crash) en dehors de l'environnement initial ont probablement tous été confrontés au moins une fois au message suivant, à la saisie d'une commande SOS ...
Cliquez pour lire la suite de l'article par coq
Logiciels
Microsoft Office (2010)MICROSOFT OFFICE (2010)Microsoft Office 2010 offre de nouveaux moyens flexibles et puissants pour optimiser votre travai... Cliquez pour télécharger Microsoft Office SeaMonkey (2.0.7)SEAMONKEY (2.0.7)Le projet SeaMonkey est issu d'un effort communautaire pour developper une application tout en un... Cliquez pour télécharger SeaMonkey Safari (5.0.2)SAFARI (5.0.2)Le navigateur d'Apple a lui aussi été mis à jour, aussi bien dans sa mouture Windows que celle po... Cliquez pour télécharger Safari Mozilla FireFox (4.0 béta 5)MOZILLA FIREFOX (4.0 BéTA 5)Firefox 4.0 béta 5
L'une des nouveautés visibles les plus attendues réside sans doute dans l'a... Cliquez pour télécharger Mozilla FireFox Mozilla Firefox (3.6.9)MOZILLA FIREFOX (3.6.9)Firefox 3.6.9 corrige les problèmes suivants :
* Introduced support for the X-FRAME-OPTION... Cliquez pour télécharger Mozilla Firefox
|