Vous êtes sur la page 1sur 22

Rvision pour le test SCJP

1) De nombreux threads peuvent tre prt pour lexcution , mais un seul thread peut tre effectivement en cours d'excution un moment donn sur une machine monoprocesseur. L'ordre dans lequel les discussions ont commenc peut-tre diffrent de l'ordre dans lequel ils sont parcourue.

2) Lappel direct de la mthode run() est juste, mais a ne dmarre pas un nouveau thread dexcution. Au lieu de cela, le thread en cours dexcution lappel comme une mthode normale.

3) La mthode start ne peut tre appele quune seule fois pour un objet thread donn.Dans le cas contraire, on obtiendra une exception IllegalThreadStateException .

4) Le thread meurt quand il aura fini sa mthode run. Un thread qui est mort ne peut plus tre dmarrer.

5) La mthode sleep() est qui met le thread en cours dexcution en sommeil pendant un instant dtermin en millisecondes . public static void sleep(long millis)

6) La mthode yield() provoque le thread courant de passer de l'tat excut ltat prt, alors qu'un autre thread peut avoir une chance dtre excuter. Mais a ne garantie pas que le thread suivant sera un thread diffrent. public static void yield()

7) La mthode isAlive () renvoie true si un thread est vivant, c'est--dire que ce thread a dmarr avec start () et n'a pas t arrt soit avec stop (), soit parce qu'il a termin d'excuter toutes les instructions de la mthode run (). public final boolean isAlive()

8) par dfaut Un thread adopte la priorit du thread qui lavait crer . La mthode setPriority(int p) permet de changer le niveau de priorit qui varie entre 1 et 10.

9) Quand un thread appelle join () sur un autre thread, le thread en cours d'excution va attendre jusqu' ce que le thread qui rejoint l'excution fini. a. void join() : permet dattendre la mort dun thread avant de continuer le traitement b. void join(long millis) : permet dattendre juste le temps dterminer avant de continuer.

10) Chaque objet en Java a un seul verrou qui assure la synchronisation daccs aux ressources.

11) Si un thread a un objet verrouill, aucun autre thread ne peut entrer le code synchronis jusqu' ce que le verrou est libr. Lorsque le thread termine lexcution du code synchronized, le verrou est libr.

13) Si un thread essaie de verrouiller un objet et constate que le verrou est dj pris, il va tre bloqu jusqu' ce que le verrou soit libr.

14) Il ya deux faons de marquer code comme synchronis (thread-safe):

a.) synchroniser une mthode complte en utilisant le modificateur synchronises dans la dclaration de mthode.

b.) Synchroniser un bloc, en utilisant le mot-cl synchronis avec une expression qui est value une rfrence d'objet. void funct(){ synchronized(obj) { // code to be thread protected } }

15) Les mthodes statiques peuvent tre synchroniss, en utilisant le verrou des objet de java.lang.Class reprsentant cette classe

16) Si un thread dort pendant l'excution du code synchronised, le verrou n'e sera pas libr.

18) Les Mthodes ou les blocs de code peuvent tre synchronises, mais pas les variables.

19) Une classe peut avoir la fois des mthodes synchronis et des mthodes non synchronises.

20) Un seul thread peut accder au code synchronis d'un objet la fois, mais n'importe quel nombre de threads peuvent accder au code non-synchronise mme de lobjet.

Les mthodes wait (), notify (), et notifyAll () sont dfinies dans la classe java.lang.Object.