АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Старт потока First

Читайте также:
  1. First: Brest
  2. Http://localhost:8080/FirstProject/demotag2.jsp
  3. Http://localhost:8082/FirstProject/index.jsp
  4. In this text the author presents a personalized view of what has happened in the first decades of modern computers in American education.
  5. Java chapt01.FirstProgram
  6. Now after your teaching practice you have some first-hand experience which you may use doing the tasks below.
  7. Анализ дисконтированного денежного потока
  8. Анализ ликвидного денежного потока
  9. АНАЛИЗ ПРОГНОЗИРУЕМОГО ДЕНЕЖНОГО ПОТОКА ИНВЕСТИЦИОННОГО ПРОЕКТА
  10. Б.ВВП методом потока расходов
  11. Банановая сценка (На старт)
  12. Видимость при старте

Старт потока Second

Завершение потока Second

Завершение потока First

Завершение main

Несмотря на вызов метода join() для потока tr1, поток tr2 будет работать, в отличие от потока main, который сможет продолжить свое выполнение только по завершении потока tr1.

Вызов метода yield() для исполняемого потока должен приводить к приостановке потока на некоторый квант времени, для того чтобы другие потоки могли выполнять свои действия. Однако если требуется надежная остановка потока, то следует использовать его крайне осторожно или вообще применить другой способ.

// пример # 5: задержка потока: YieldRunner.java

package chapt14;

public class YieldRunner {

public static void main(String[] args) {

new Thread() {

public void run() {

System. out. println("старт потока 1");

Thread. yield ();

System. out. println("завершение 1");

}

}.start();

new Thread() {

public void run() {

System. out. println("старт потока 2");

System. out. println("завершение 2");

}

}.start();

}

}

В результате может быть выведено:

Старт потока 1

Старт потока 2

Завершение 2

Завершение 1

Активизация метода yield() в коде метода run() первого объекта потока приведет к тому, что, скорее всего, первый поток будет остановлен на некоторый квант времени, что даст возможность другому потоку запуститься и выполнить свой код.

Потоки-демоны

Потоки-демоны работают в фоновом режиме вместе с программой, но не являются неотъемлемой частью программы. Если какой-либо процесс может выполняться на фоне работы основных потоков выполнения и его деятельность заключается в обслуживании основных потоков приложения, то такой процесс может быть запущен как поток-демон. С помощью метода setDaemon(boolean value), вызванного вновь созданным потоком до его запуска, можно определить поток-демон. Метод boolean isDaemon() позволяет определить, является ли указанный поток демоном или нет.

/* пример # 6: запуск и выполнение потока-демона: DemoDaemonThread.java */

package chapt14;

class T extends Thread {

public void run() {

try {

if (isDaemon()){

System. out. println("старт потока-демона");

sleep (10000); // заменить параметр на 1

} else {

System. out. println("старт обычного потока");

}

} catch (InterruptedException e) {

System. err. print("Error" + e);

} finally {

if (!isDaemon())

System. out. println(

"завершение обычного потока");

Else

System. out. println(

"завершение потока-демона");

}

}

}

package chapt14;

 

public class DemoDaemonThread {

public static void main(String[] args) {

T usual = new T();

T daemon = new T();

daemon.setDaemon(true);

daemon.start();

usual.start();

System. out. println(

"последний оператор main");

}

}

В результате компиляции и запуска, возможно, будет выведено:

последний оператор main


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)