Три способа внедрения многопоточных на Java
В Java есть три способа реализации многопоточного. Первый метод: наследуйте класс потока и переопределите функцию выполнения. Второй метод: реализуйте выполняемый интерфейс и перепишите функцию выполнения. Третий метод: реализуйте выставленный интерфейс и переопределяйте функцию вызова. Эта статья объяснит, как эти три метода могут быть реализованы с помощью примеров. Если вам это нужно, пожалуйста, обратитесь к этому.
(1) Унаследовать класс потока и переопределить функцию выполнения.
Class XX Extends Thread {public void run () {thread.sleep (1000) // Поток спит в течение 1000 миллисекунд, сон заставляет поток входить в состояние блока и ресурсы выпуска}} Начальная тема:
Object.start () // запустить поток, запустите функцию запуска
(2) Реализуйте выполняемый интерфейс, код выглядит следующим образом
класс Mythread реализует runnable {private String name; public mythread (string name) {super (); this.name = name; } @Override public void run () {for (int i = 0; i <200; i ++) {System.out.println ("Thread"+name+"--->"+i); }}} public Class Threaddemo {public static void main (string [] args) {mythread a = new Mythread ("a"); Mythread b = new Mythread ("b"); Mythread c = new Mythread ("c"); новый поток (a) .start (); новый поток (b) .start (); новый поток (c) .start (); }}(3) Реализуйте разводной интерфейс и переписывайте функцию вызова
Callible - это интерфейс, похожий на Runnable. Классы, которые реализуют вызываемый интерфейс, и классы, которые реализуют запускаемые, - это задачи, которые могут выполняться другими потоками.
Существует несколько различий между вызовом и запускаемым:
Пример Callable Code Java:
класс TaskWithResult реализует Callable <string> {private Int Id; public taskwithresult (int id) {this.id = id; } @Override public String call () выбрасывает exection {return "Результат TaskWithResult" + id; }} открытый класс callabletest {public static void main (string [] args) throws retruptEdException, executionException {executorService exc = executors.newcachedThreadpool (); Arraylist <future <String >> Results = new ArrayList <Future <String >> (); // будущее эквивалентно контейнеру, используемому для хранения результатов выполнения исполнителя для (int i = 0; i <10; i ++) {results.add (exec.submit (new TaskWithresult (i))); } for (future <string> fs: результаты) {if (fs.isdone ()) {System.out.println (fs.get ()); } else {System.out.println ("Будущий результат еще не завершен"); }} exec.shutdown (); }}Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!