Предисловие
Многопользовательская честь - это то, с чем мы часто сталкиваемся в процессе разработки, а также является незаменимым и необходимым мастерством. Когда мы знаем, что нам нужно сделать многопоточную разработку, первое, что нам нужно знать, это естественно, как реализовать многопоточное, то есть как мы должны создавать потоки.
Создание потоков в Java - это то же самое, что и создание объектных операций для обычных классов. Мы можем создавать потоки двумя способами:
1. Уточните класс потока и переопределите метод run ().
2. Реализуйте запускаемый интерфейс и реализуйте метод run ().
Метод 1: Унаследовать класс потоков
Код очень прост
Переместите конструктор, чтобы мы могли назвать поток.
Перепишите метод run ().
Здесь мы сначала позволили потоку выводить имя потока + старт.
Затем выводите имя потока + инкрементное число каждые 5 мс.
/*** Создано Holten.gao на 2016/10/17. */public class ThreadThread Extends Thread {public ThreadThread (String name) {super (name); } @Override public void run () {System.out.println (this.getName ()+"start!"); for (int i = 0; i <10; i ++) {System.out.println (this.getName ()+""+i); try {thread.sleep (5); } catch (прерванное искусство e) {e.printstacktrace (); }}}}Метод 2: Реализация запускаемого интерфейса
Код также очень прост
Реализуйте метод run ().
Здесь мы сначала позволили потоку выводить имя потока + старт.
Затем выводите имя потока + инкрементное число каждые 5 мс.
/*** Создано Holten.gao на 2016/10/17. */public class RunnableThread реализует runnable {@Override public void run () {system.out.println (thread.currentThread (). getName ()+"start!"); for (int i = 0; i <10; i ++) {System.out.println (thread.currentThread (). getName ()+""+i); try {thread.sleep (5); } catch (прерванное искусство e) {e.printstacktrace (); }}}}Результаты теста
Тестовый код
/*** Создано Holten.gao на 2016/10/17. */public class main {public static void main (string [] args) {ThreadThread = new ThreadThread ("ThreadThread"); threadthread.start (); Thread runNableThread = new Thread (new RunnableThread (), "RunnableThread"); RunnableThread.Start (); }}Результаты теста
threadThread start!threadThreadThread 0runnableThread start!runnableThread 0threadThread 1runnableThread 1threadThread 2runnableThread 2threadThread 3runnableThread 3threadThread 4runnableThread 4threadThread 5runnableThread 5threadThread 6runnableThread 6threadThread 7runnableThread 7threadThread 8runnableThread 9
Сравнение двух методов
1. Поскольку Java поддерживает только одиночное наследование, используя метод, который не может наследовать другие классы; При реализации интерфейсов во втором методе не влияет наследование других классов.
2. Метод 1: Поскольку он наследует поток, вы можете начать с прямого нового; В то время как метод 2: вам нужно передать объект в виде параметра в объект потока, чтобы получить объект потока.
3. В первом методе вы можете напрямую получить имя потока через это. GetName; В то время как во втором методе вам нужно получить Thread.currentThread (). getName ().
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.