Este exemplo compartilha três maneiras de implementar multi-threading em Java para sua referência. O conteúdo específico é o seguinte
importar java.util.Concurrent.Callable; importar java.util.concurrent.futureTask; public class Main {public static void main (string [] args) {// Método 1: Intena Thread Int I = 0; para (; i <100; i ++) {// System.out.out.PRINT.PRNNN (// para (; I <100; i); // if (i == 5) {// threadExtendsthread threadExtendSthread = new ThreadExtthRead (); // threadExtendsthread.start (); //} //} // método 2: implemente runnable // para (i = 0; i <100; i ++) {// System.out.prnnnnnAn. i); // if (i == 5) {// runnable runnable = new threadImplementsRunnable (); // new Thread (runnable) .start (); //} //} // método 3: implemente a interface chamada chamável <Teger> callable = new ThreadMImMplementsCallable (); FutureTask <Integer> FutureTask = new FutureTask <> (Callable); for (i = 0; i <100; i ++) {System.out.println (thread.currentThread (). getName () + "" + i); if (i == 5) {new Thread (futureTask) .start (); novo thread (futureTask) .start (); }} tente {System.out.println ("FutureTask Ruturn:" + FutureTask.get ()); } catch (Exceção e) {e.printStackTrace (); }}} Método 1, herdado do thread
classe pública threadExtendsThread estende thread {private int i; @Override public void run () {for (; i <100; i ++) {System.out.println (getName () + "" + i); }}}O método de execução é o corpo de execução do encadeamento e o objeto ThreadExtendSthRead é o objeto Thread.
Método 2: Implemente a interface executável
classe pública threadimplementsRunnable implementa runnable {private int i; @Override public void run () {for (; i <100; i ++) {System.out.println (thread.currentThread (). GetName () + "" + i); }}}O método de execução é o órgão de execução do encadeamento. Ao usá -lo, um objeto Thread é novo e o objeto executável é passado para o objeto Thread como um destino. E o mesmo objeto executável pode ser usado como um alvo para vários threads, e esses threads compartilham variáveis de instância do objeto executável.
Método 3: Implementar a interface chamada
importar java.util.Concurrent.Callable; public class Threadimplements Iplemmlelable Callable <Integer> {private int i; @Override public Integer Call () lança exceção {for (; i <100; i ++) {System.out.println (thread.currentThread (). GetName () + "" + i); } retornar i; }}A interface chamada é semelhante à interface executável, mas é mais forte que a outra parte. O corpo de execução do thread é um método de chamada, que tem um valor de retorno e pode lançar exceções. Quando usado, envolva o objeto chamável como um objeto FutureTask, especifique o tipo de valor de retorno através de genéricos. Você pode chamar o método Get of FutureTask para recuperar o resultado da execução.
O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.