Позже мы представим содержание пула потоков; Содержание этой главы включает в себя:
Введение в потоку и запускающееся
Сходства и различия между потоком и бегливым
Пример многопоточного чтения для потока и запуска
Введение в потоку и запускающееся
Runnable - это интерфейс, который содержит только один метод run (). Его определение следующее:
Кода -копия выглядит следующим образом:
общедоступный интерфейс {
Public Abstract void Run ();
}
Роль бега, реализует многопоточное. Мы можем определить класс A для реализации запускаемого интерфейса;
Тема - это класс. Сам поток реализует запускаемый интерфейс. Его утверждение следующим образом:
Поток публичного класса реализует Runnable {}
Роль нить в том, чтобы реализовать многопоточное.
Сходства и различия между потоком и бегливым
Сходство между потоком и запусками: оба являются «многопоточными реализациями».
Различия между потоком и бегством:
Поток - это класс, и запускается интерфейс; Мы знаем, что «класс может иметь только один родительский класс, но он может реализовать несколько интерфейсов», так что работает лучше масштабируемость.
Кроме того, Runnable также можно использовать для «совместного использования ресурсов». То есть несколько потоков создаются на основе определенного запускаемого объекта, и они будут делиться ресурсами на выполняемом объекте.
Как правило, рекомендуется реализовать многопоточное с помощью «Runnable»!
Примеры многопоточности для потока и запуска
1. Пример многопоточного примера потока
Ниже мы можем лучше понять потоку и запустить с помощью примеров и привлечь пример онлайн, который является более убедительным.
Кода -копия выглядит следующим образом:
// threadtest.java исходный код
класс Mythread Extends Thread {
частный билет int = 10;
public void run () {
для (int i = 0; i <20; i ++) {
if (this.ticket> 0) {
System.out.println (this.getName ()+"Продажа билета: билет"+this.ticket--);
}
}
}
};
публичный класс ThreadTest {
public static void main (string [] args) {
// запустить 3 потока T1, T2, T3;
Mythread T1 = new Mythread ();
Mythread t2 = new Mythread ();
Mythread T3 = New Mythread ();
t1.start ();
t2.start ();
t3.start ();
}
}
Результаты работы:
Кода -копия выглядит следующим образом:
Продажа билетов Thread-0: Ticket10
Продажа билетов Thread-1: Ticket10
Продажа билетов Thread-2: Ticket10
Продажа билетов Thread-1: Ticket9
Продажа билетов Thread-0: Ticket9
Продажа билетов Thread-1: Ticket8
Продажа билетов Thread-2: Ticket9
Продажа билетов Thread-1: Ticket7
Продажа билетов Thread-0: Ticket8
Продажа билетов Thread-1: Ticket6
Продажа билетов Thread-2: Ticket8
Продажа билетов Thread-1: Ticket5
Продажа билетов Thread-0: Ticket7
Билеты Thread-1: Ticket4
Продажа билетов Thread-2: Ticket7
Продажа билетов Thread-1: Ticket3
Продажа билетов Thread-0: Ticket6
Продажа билетов Thread-1: Ticket2
Продажа билетов Thread-2: Ticket6
Результаты Описание:
(01) Mythread наследует от потока, который является пользовательским потоком. Каждый Mythread продает 10 билетов.
(02) Основная нить Main создает и запускается 3 Mythread Kider Threads. Каждая детская нить продает 10 билетов.
2. Многопоточный пример запуска
Далее мы изменяем вышеуказанную программу. Реализуйте интерфейс через выполнение, тем самым реализуя многопоточное.
Кода -копия выглядит следующим образом:
// runnabletest.java исходный код
класс Mythread реализует runnable {
частный билет int = 10;
public void run () {
для (int i = 0; i <20; i ++) {
if (this.ticket> 0) {
System.out.println (Thread.currentThread (). GetName ()+"Билет продает: билет"+this.ticket--);
}
}
}
};
открытый класс Runnabletest {
public static void main (string [] args) {
Mythread mt = new Mythread ();
// запустить 3 потока T1, T2, T3 (они разделяют запускаемый объект), и эти 3 потока продают в общей сложности 10 билетов!
Потока T1 = новый поток (MT);
Потока T2 = новый поток (MT);
Потока T3 = новый поток (MT);
t1.start ();
t2.start ();
t3.start ();
}
}
Результаты работы:
Кода -копия выглядит следующим образом:
Продажа билетов Thread-0: Ticket10
Продажа билетов Thread-2: Ticket8
Продажа билетов Thread-1: Ticket9
Продажа билетов Thread-2: Ticket6
Продажа билетов Thread-0: Ticket7
Билеты Тема-2: Ticket4
Продажа билетов Thread-1: Ticket5
Билеты Тема-2: Ticket2
Продажа билетов Thread-0: Ticket3
Билеты Thread-1: Ticket1
Результаты Описание:
(01) в отличие от вышеуказанного «Митрох наследия от потока»;
(02) Основной поток Main создает и запускает 3 ребенка дочерних потоков, и все эти 3 детских потока созданы на основе «MT, выполняемого объекта». Результатом операции является то, что эти 3 детских нити продали в общей сложности 10 билетов. Это означает, что они разделяют интерфейс Mythread.