C'è una semplice domanda stupida che mi infastidisce e mi fa venire in mente diversi argomenti. Voglio buttare via tutti i dubbi sulle domande sottostanti.
class Clstest{
public static String testStaticMethod(String inFileStr) {
// section 0
// section 1
// do something with inFileStr
// section 2
// section 3
return inFileStr;
}
}
Supponiamo che ci siano cinque thread a cui ciascuno sta eseguendo una chiamata Clstest.testStaticMethod("arg-n")
contemporaneamente.
Il thread 1 chiama Clstest.testStaticMethod("arg-1")
.
Quando il thread 1 è nella sezione 1, il thread 2 chiama Clstest.testStaticMethod("arg-2")
.
Quindi cosa accadrà al thread 1? Andrà in stato di sonno?
Quando il thread 1 ha avuto la possibilità, riprenderà l'esecuzione dalla sezione 1 in cui era stata sospesa?
Come succede quando ce n'è uno Clstest.testStaticMethod
e lo stesso Clstest.testStaticMethod
è condiviso tra tutti e cinque i thread?
C'è qualche possibilità di scambiare l' inFileStr
invio da più thread?