Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > fr.comp.lang.java > #1707

Re: Terminer un Thread.

Path csiph.com!2.eu.feeder.erje.net!feeder.erje.net!1.eu.feeder.erje.net!weretis.net!feeder4.news.weretis.net!news.trigofacile.com!.POSTED.reverse-90.fdn.fr!not-for-mail
From Yliur <yliur@free.fr>
Newsgroups fr.comp.lang.java
Subject Re: Terminer un Thread.
Date Thu, 13 Sep 2018 07:31:48 +0200
Organization Groupes francophones par TrigoFACILE
Message-ID <20180913073148.135d0f4f@free.fr> (permalink)
References <5b9992bb$0$5486$426a74cc@news.free.fr> <pnc4mh$cmk$1@dont-email.me> <20180913012022.478eee8b@free.fr> <5b99d812$0$20328$426a74cc@news.free.fr>
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding 8bit
Injection-Info news.trigofacile.com; posting-account="yliur@free.fr"; posting-host="reverse-90.fdn.fr:80.67.176.90"; logging-data="27908"; mail-complaints-to="abuse@trigofacile.com"
X-Newsreader Claws Mail 3.17.1 (GTK+ 2.24.32; x86_64-pc-linux-gnu)
Xref csiph.com fr.comp.lang.java:1707

Show key headers only | View raw


Le 13 Sep 2018 03:22:58 GMT
jp <bloiiing@yahoo.invalid> a écrit :

> Le Thu, 13 Sep 2018 01:20:22 +0200, Yliur a écrit :
> 
> > Le Thu, 13 Sep 2018 00:41:19 +0200 Samuel DEVULDER
> > <samuel.devulder@laposte-dot-net.invalid> a écrit :  
> 
> >> La façon, propre de faire cela est d'utiliser un drapeau
> >> (booleen). Tu remplace le while(true) par while(drapeau), et pour
> >> stopper tu passes le drapeau à faux et envoie une interruption
> >> (interrupt()) au thread pour le sortir d'un eventuel object.wait()
> >> ou autre appel d'entrée/sortie sur lequel il serait coincé.  
> > 
> > La modification et la lecture de la valeur devraient également se
> > trouver dans des blocs synchronisés (par exemple des fonctions
> > marquées synchronized), pour être sûr que la valeur a bien été
> > partagée entre les fils d'exécution.  
> 
> Ok,merci! Si j'envoie une interruption interrupt() cela va stopper ma 
> boucle immédiatement? Parceque le bloc while(true){code} peut être
> très long dans mon cas... Plusieurs minutes ou dizaines de minutes.
> Je voudrais le terminer tout de suite et ne pas attendre que la
> valeur while (condition) soit traitée.
> 
> Dans un bouquin on me conseille de faire: 
> try {
> 	while(true){
> 		if (interrupted()) return;
> 	}
> } catch (InterruptedExeption e){return;}
> 
> Je vais tester pour voir. Merci de vos réponses.

Les questions importantes à te poser pour choisir comment faire :
    - Est-ce que tu veux couper ton fil d'exécution en pleine action,
      vraiment n'importe quand ?
    - Est-ce qu'il ne risque pas de laisser des données (visibles en
      dehors du fil) dans un état incohérent ?
    - Est-ce que le fil exécute une boucle dans laquelle il passe très
      souvent et obligatoirement à un endroit donné du code ?
    - Est-ce que le fil est parfois bloqué (appel à sleep pour un long
      moment, attente d'une connexion réseau, ...) ?

Back to fr.comp.lang.java | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Terminer un Thread. jp <bloiiing@yahoo.invalid> - 2018-09-12 22:27 +0000
  Re: Terminer un Thread. Samuel DEVULDER <samuel.devulder@laposte-dot-net.invalid> - 2018-09-13 00:41 +0200
    Re: Terminer un Thread. Yliur <yliur@free.fr> - 2018-09-13 01:20 +0200
      Re: Terminer un Thread. jp <bloiiing@yahoo.invalid> - 2018-09-13 03:22 +0000
        Re: Terminer un Thread. Yliur <yliur@free.fr> - 2018-09-13 07:31 +0200
          Re: Terminer un Thread. jp <bloiiing@yahoo.invalid> - 2018-09-13 22:42 +0000
            Re: Terminer un Thread. Yliur <yliur@free.fr> - 2018-09-14 05:46 +0200
              Re: Terminer un Thread. jp <bloiiing@yahoo.invalid> - 2018-09-15 06:41 +0000
                Re: Terminer un Thread. Yliur <yliur@free.fr> - 2018-09-15 14:24 +0200
                Re: Terminer un Thread. jp <bloiiing@yahoo.invalid> - 2018-09-16 03:09 +0000

csiph-web