<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Fjava.lang%2FThread</id>
		<title>Java by API/java.lang/Thread - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Fjava.lang%2FThread"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/java.lang/Thread&amp;action=history"/>
		<updated>2026-04-22T17:32:49Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_by_API/java.lang/Thread&amp;diff=2018&amp;oldid=prev</id>
		<title> в 17:43, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/java.lang/Thread&amp;diff=2018&amp;oldid=prev"/>
				<updated>2010-05-31T17:43:48Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:43, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_by_API/java.lang/Thread&amp;diff=2019&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/java.lang/Thread&amp;diff=2019&amp;oldid=prev"/>
				<updated>2010-05-31T14:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== new Thread(Runnable target, String name) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
 * Got: 0&lt;br /&gt;
 * Got: 0&lt;br /&gt;
 * Got: 0&lt;br /&gt;
 * ...&lt;br /&gt;
 */&lt;br /&gt;
class Queue {&lt;br /&gt;
  int n;&lt;br /&gt;
  synchronized int get() {&lt;br /&gt;
  System.out.println(&amp;quot;Got: &amp;quot; + n);&lt;br /&gt;
  return n;&lt;br /&gt;
  }&lt;br /&gt;
  synchronized void put(int n) {&lt;br /&gt;
  this.n = n;&lt;br /&gt;
  System.out.println(&amp;quot;Put: &amp;quot; + n);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Consumer implements Runnable {&lt;br /&gt;
  Queue q;&lt;br /&gt;
  Consumer(Queue q) {&lt;br /&gt;
  this.q = q;&lt;br /&gt;
  new Thread(this, &amp;quot;Consumer&amp;quot;).start();&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
  while(true) {&lt;br /&gt;
      q.get();&lt;br /&gt;
  }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
  Queue q = new Queue();&lt;br /&gt;
  new Consumer(q);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread.activeCount() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
current thread: Thread[My Thread,1,main]&lt;br /&gt;
currently active threads: 1&lt;br /&gt;
0: Thread[My Thread,1,main]&lt;br /&gt;
java.lang.Exception: Stack trace&lt;br /&gt;
  at java.lang.Thread.dumpStack(Thread.java:1158)&lt;br /&gt;
  at MainClass.main(MainClass.java:23)&lt;br /&gt;
 * &lt;br /&gt;
 &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Thread t = Thread.currentThread();&lt;br /&gt;
    t.setName(&amp;quot;My Thread&amp;quot;);&lt;br /&gt;
    t.setPriority(1);&lt;br /&gt;
    System.out.println(&amp;quot;current thread: &amp;quot; + t);&lt;br /&gt;
    int active = Thread.activeCount();&lt;br /&gt;
    System.out.println(&amp;quot;currently active threads: &amp;quot; + active);&lt;br /&gt;
    Thread all[] = new Thread[active];&lt;br /&gt;
    Thread.enumerate(all);&lt;br /&gt;
    for (int i = 0; i &amp;lt; active; i++) {&lt;br /&gt;
      System.out.println(i + &amp;quot;: &amp;quot; + all[i]);&lt;br /&gt;
    }&lt;br /&gt;
    Thread.dumpStack();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread.currentThread() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output: &lt;br /&gt;
currentThread: Thread[main,5,main]&lt;br /&gt;
Thread created: Thread[Demo Thread,5,main]&lt;br /&gt;
5&lt;br /&gt;
4&lt;br /&gt;
3&lt;br /&gt;
2&lt;br /&gt;
1&lt;br /&gt;
exiting child thread&lt;br /&gt;
&lt;br /&gt;
 */&lt;br /&gt;
public class MainClass implements Runnable {&lt;br /&gt;
  MainClass() {&lt;br /&gt;
    Thread ct = Thread.currentThread();&lt;br /&gt;
    Thread t = new Thread(this, &amp;quot;Demo Thread&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;currentThread: &amp;quot; + ct);&lt;br /&gt;
    System.out.println(&amp;quot;Thread created: &amp;quot; + t);&lt;br /&gt;
    t.start();&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    for (int i = 5; i &amp;gt; 0; i--) {&lt;br /&gt;
      System.out.println(&amp;quot;&amp;quot; + i);&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;exiting child thread&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    new MainClass();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread.dumpStack() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
current thread: Thread[My Thread,1,main]&lt;br /&gt;
currently active threads: 1&lt;br /&gt;
0: Thread[My Thread,1,main]&lt;br /&gt;
java.lang.Exception: Stack trace&lt;br /&gt;
  at java.lang.Thread.dumpStack(Thread.java:1158)&lt;br /&gt;
  at MainClass.main(MainClass.java:23)&lt;br /&gt;
 * &lt;br /&gt;
 &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Thread t = Thread.currentThread();&lt;br /&gt;
    t.setName(&amp;quot;My Thread&amp;quot;);&lt;br /&gt;
    t.setPriority(1);&lt;br /&gt;
    System.out.println(&amp;quot;current thread: &amp;quot; + t);&lt;br /&gt;
    int active = Thread.activeCount();&lt;br /&gt;
    System.out.println(&amp;quot;currently active threads: &amp;quot; + active);&lt;br /&gt;
    Thread all[] = new Thread[active];&lt;br /&gt;
    Thread.enumerate(all);&lt;br /&gt;
    for (int i = 0; i &amp;lt; active; i++) {&lt;br /&gt;
      System.out.println(i + &amp;quot;: &amp;quot; + all[i]);&lt;br /&gt;
    }&lt;br /&gt;
    Thread.dumpStack();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread.enumerate(Thread[] tarray) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
current thread: Thread[My Thread,1,main]&lt;br /&gt;
currently active threads: 1&lt;br /&gt;
0: Thread[My Thread,1,main]&lt;br /&gt;
java.lang.Exception: Stack trace&lt;br /&gt;
  at java.lang.Thread.dumpStack(Thread.java:1158)&lt;br /&gt;
  at MainClass.main(MainClass.java:23)&lt;br /&gt;
 * &lt;br /&gt;
 &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Thread t = Thread.currentThread();&lt;br /&gt;
    t.setName(&amp;quot;My Thread&amp;quot;);&lt;br /&gt;
    t.setPriority(1);&lt;br /&gt;
    System.out.println(&amp;quot;current thread: &amp;quot; + t);&lt;br /&gt;
    int active = Thread.activeCount();&lt;br /&gt;
    System.out.println(&amp;quot;currently active threads: &amp;quot; + active);&lt;br /&gt;
    Thread all[] = new Thread[active];&lt;br /&gt;
    Thread.enumerate(all);&lt;br /&gt;
    for (int i = 0; i &amp;lt; active; i++) {&lt;br /&gt;
      System.out.println(i + &amp;quot;: &amp;quot; + all[i]);&lt;br /&gt;
    }&lt;br /&gt;
    Thread.dumpStack();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: getStackTrace() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
public class Main {&lt;br /&gt;
 public static void main(String args[]) {&lt;br /&gt;
   anotherLayout();&lt;br /&gt;
 }&lt;br /&gt;
 public static void anotherLayout(){&lt;br /&gt;
   new Main().doit();&lt;br /&gt;
 }&lt;br /&gt;
 public void doit() {&lt;br /&gt;
    System.out.println(&lt;br /&gt;
       Thread.currentThread().getStackTrace()[3].getMethodName());&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: getThreadGroup() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    ThreadGroup tg = Thread.currentThread().getThreadGroup();&lt;br /&gt;
    MyThread mt1 = new MyThread(tg, &amp;quot;first&amp;quot;);&lt;br /&gt;
    MyThread mt2 = new MyThread(tg, &amp;quot;second&amp;quot;);&lt;br /&gt;
    mt1.start();&lt;br /&gt;
    mt2.start();&lt;br /&gt;
    ThreadGroup parent = tg.getParent();&lt;br /&gt;
    Thread[] list = new Thread[parent.activeCount()];&lt;br /&gt;
    int count = parent.enumerate(list, true);&lt;br /&gt;
    String[] thdinfo = new String[count];&lt;br /&gt;
    for (int i = 0; i &amp;lt; count; i++)&lt;br /&gt;
      thdinfo[i] = list[i].toString();&lt;br /&gt;
    mt1.join();&lt;br /&gt;
    mt2.join();&lt;br /&gt;
    for (int i = 0; i &amp;lt; count; i++)&lt;br /&gt;
      System.out.println(thdinfo[i]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyThread extends Thread {&lt;br /&gt;
  MyThread(ThreadGroup tg, String name) {&lt;br /&gt;
    super(tg, name);&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    for (char c = &amp;quot;A&amp;quot;; c &amp;lt;= &amp;quot;Z&amp;quot;; c++)&lt;br /&gt;
      System.out.println(c);&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(1000);&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: getUncaughtExceptionHandler() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
public class Main implements Runnable {&lt;br /&gt;
  static class OverrideExceptionHandler implements Thread.UncaughtExceptionHandler {&lt;br /&gt;
    public void uncaughtException(Thread t, Throwable e) {&lt;br /&gt;
      alertAdministrator(e);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void alertAdministrator(Throwable e) {&lt;br /&gt;
    // Use Java Mail to send the administrator&amp;quot;s pager an email&lt;br /&gt;
    System.out.println(&amp;quot;Adminstrator alert!&amp;quot;);&lt;br /&gt;
    e.printStackTrace();&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Thread t = new Thread(new Main());&lt;br /&gt;
    t.setUncaughtExceptionHandler(new OverrideExceptionHandler());&lt;br /&gt;
    System.out.println(t.getUncaughtExceptionHandler());&lt;br /&gt;
    t.start();&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    ArrayList al = new ArrayList();&lt;br /&gt;
    while (true) {&lt;br /&gt;
      al.add(new byte[1024]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: interrupt() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
class TryThread extends Thread {&lt;br /&gt;
  public TryThread(String firstName, String secondName, long delay) {&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
    this.secondName = secondName;&lt;br /&gt;
    aWhile = delay;&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    try {&lt;br /&gt;
      while (true) {&lt;br /&gt;
        System.out.print(firstName);&lt;br /&gt;
        sleep(aWhile);&lt;br /&gt;
        System.out.print(secondName + &amp;quot;\n&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
      System.out.println(firstName + secondName + e);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private String firstName;&lt;br /&gt;
  private String secondName;&lt;br /&gt;
  private long aWhile;&lt;br /&gt;
}&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Thread first = new TryThread(&amp;quot;A &amp;quot;, &amp;quot;a &amp;quot;, 200L);&lt;br /&gt;
    Thread second = new TryThread(&amp;quot;B &amp;quot;, &amp;quot;b &amp;quot;, 300L);&lt;br /&gt;
    Thread third = new TryThread(&amp;quot;C &amp;quot;, &amp;quot;c &amp;quot;, 500L);&lt;br /&gt;
    first.start();&lt;br /&gt;
    second.start();&lt;br /&gt;
    third.start();&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(3000);&lt;br /&gt;
      first.interrupt();&lt;br /&gt;
      second.interrupt();&lt;br /&gt;
      third.interrupt();&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      System.out.println(e);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: isAlive() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
class NewThread implements Runnable {&lt;br /&gt;
  String name; // name of thread&lt;br /&gt;
  Thread t;&lt;br /&gt;
  NewThread(String threadname) {&lt;br /&gt;
    name = threadname;&lt;br /&gt;
    t = new Thread(this, name);&lt;br /&gt;
    System.out.println(&amp;quot;New thread: &amp;quot; + t);&lt;br /&gt;
    t.start(); // Start the thread&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    try {&lt;br /&gt;
      for (int i = 5; i &amp;gt; 0; i--) {&lt;br /&gt;
        System.out.println(name + &amp;quot;: &amp;quot; + i);&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
      }&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
      System.out.println(name + &amp;quot; interrupted.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(name + &amp;quot; exiting.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class DemoJoin {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    NewThread ob1 = new NewThread(&amp;quot;One&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;Thread One is alive: &amp;quot; + ob1.t.isAlive());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: isDaemon() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
class MyThread extends Thread {&lt;br /&gt;
  MyThread() {&lt;br /&gt;
    setDaemon(true);&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    boolean isDaemon = isDaemon();&lt;br /&gt;
    System.out.println(&amp;quot;isDaemon:&amp;quot; + isDaemon);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Thread thread = new MyThread();&lt;br /&gt;
    thread.setDaemon(true);&lt;br /&gt;
    thread.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: join() (Using join() to wait for threads to finish) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
New thread: Thread[One,5,main]&lt;br /&gt;
New thread: Thread[Two,5,main]&lt;br /&gt;
New thread: Thread[Three,5,main]&lt;br /&gt;
Two: 5&lt;br /&gt;
Thread One is alive: true&lt;br /&gt;
Thread Two is alive: true&lt;br /&gt;
Thread Three is alive: true&lt;br /&gt;
Waiting for threads to finish.&lt;br /&gt;
One: 5&lt;br /&gt;
Three: 5&lt;br /&gt;
Two: 4&lt;br /&gt;
Three: 4&lt;br /&gt;
One: 4&lt;br /&gt;
One: 3&lt;br /&gt;
Three: 3&lt;br /&gt;
Two: 3&lt;br /&gt;
One: 2&lt;br /&gt;
...&lt;br /&gt;
...  &lt;br /&gt;
 */&lt;br /&gt;
class MyThread implements Runnable {&lt;br /&gt;
  String name; // name of thread&lt;br /&gt;
  Thread t;&lt;br /&gt;
  MyThread(String threadname) {&lt;br /&gt;
    name = threadname;&lt;br /&gt;
    t = new Thread(this, name);&lt;br /&gt;
    System.out.println(&amp;quot;New thread: &amp;quot; + t);&lt;br /&gt;
    t.start();&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    try {&lt;br /&gt;
      for (int i = 5; i &amp;gt; 0; i--) {&lt;br /&gt;
        System.out.println(name + &amp;quot;: &amp;quot; + i);&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
      }&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
      System.out.println(name + &amp;quot; interrupted.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(name + &amp;quot; exiting.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    MyThread ob1 = new MyThread(&amp;quot;One&amp;quot;);&lt;br /&gt;
    MyThread ob2 = new MyThread(&amp;quot;Two&amp;quot;);&lt;br /&gt;
    MyThread ob3 = new MyThread(&amp;quot;Three&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;Thread One is alive: &amp;quot; + ob1.t.isAlive());&lt;br /&gt;
    System.out.println(&amp;quot;Thread Two is alive: &amp;quot; + ob2.t.isAlive());&lt;br /&gt;
    System.out.println(&amp;quot;Thread Three is alive: &amp;quot; + ob3.t.isAlive());&lt;br /&gt;
    try {&lt;br /&gt;
      System.out.println(&amp;quot;Waiting for threads to finish.&amp;quot;);&lt;br /&gt;
      ob1.t.join();&lt;br /&gt;
      ob2.t.join();&lt;br /&gt;
      ob3.t.join();&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
      System.out.println(&amp;quot;Main thread Interrupted&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;Thread One is alive: &amp;quot; + ob1.t.isAlive());&lt;br /&gt;
    System.out.println(&amp;quot;Thread Two is alive: &amp;quot; + ob2.t.isAlive());&lt;br /&gt;
    System.out.println(&amp;quot;Thread Three is alive: &amp;quot; + ob3.t.isAlive());&lt;br /&gt;
    System.out.println(&amp;quot;Main thread exiting.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread.MAX_PRIORITY ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
    29465957 vs. -1589812543&lt;br /&gt;
 *   &lt;br /&gt;
 * &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
class MyThread implements Runnable {&lt;br /&gt;
  public int click = 0;&lt;br /&gt;
  private Thread t;&lt;br /&gt;
  private boolean running = true;&lt;br /&gt;
  public MyThread(int p) {&lt;br /&gt;
    t = new Thread(this);&lt;br /&gt;
    t.setPriority(p);&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    while (running) {&lt;br /&gt;
      click++;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void stop() {&lt;br /&gt;
    running = false;&lt;br /&gt;
  }&lt;br /&gt;
  public void start() {&lt;br /&gt;
    t.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Thread.currentThread().setPriority(Thread.MAX_PRIORITY);&lt;br /&gt;
    MyThread hi = new MyThread(Thread.NORM_PRIORITY + 2);&lt;br /&gt;
    MyThread lo = new MyThread(Thread.NORM_PRIORITY - 2);&lt;br /&gt;
    lo.start();&lt;br /&gt;
    hi.start();&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(10000);&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
    }&lt;br /&gt;
    lo.stop();&lt;br /&gt;
    hi.stop();&lt;br /&gt;
    System.out.println(lo.click + &amp;quot; vs. &amp;quot; + hi.click);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread.NORM_PRIORITY ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
    29465957 vs. -1589812543&lt;br /&gt;
 *   &lt;br /&gt;
 * &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
class MyThread implements Runnable {&lt;br /&gt;
  public int click = 0;&lt;br /&gt;
  private Thread t;&lt;br /&gt;
  private boolean running = true;&lt;br /&gt;
  public MyThread(int p) {&lt;br /&gt;
    t = new Thread(this);&lt;br /&gt;
    t.setPriority(p);&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    while (running) {&lt;br /&gt;
      click++;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void stop() {&lt;br /&gt;
    running = false;&lt;br /&gt;
  }&lt;br /&gt;
  public void start() {&lt;br /&gt;
    t.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Thread.currentThread().setPriority(Thread.MAX_PRIORITY);&lt;br /&gt;
    MyThread hi = new MyThread(Thread.NORM_PRIORITY + 2);&lt;br /&gt;
    MyThread lo = new MyThread(Thread.NORM_PRIORITY - 2);&lt;br /&gt;
    lo.start();&lt;br /&gt;
    hi.start();&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(10000);&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
    }&lt;br /&gt;
    lo.stop();&lt;br /&gt;
    hi.stop();&lt;br /&gt;
    System.out.println(lo.click + &amp;quot; vs. &amp;quot; + hi.click);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: run() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
Hello&lt;br /&gt;
Hello&lt;br /&gt;
Hello&lt;br /&gt;
 */&lt;br /&gt;
class ThreadX extends Thread {&lt;br /&gt;
  &lt;br /&gt;
  public void run() {&lt;br /&gt;
    try {&lt;br /&gt;
      while(true) {&lt;br /&gt;
        Thread.sleep(2000);&lt;br /&gt;
        System.out.println(&amp;quot;Hello&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    catch(InterruptedException ex) {&lt;br /&gt;
      ex.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    &lt;br /&gt;
    ThreadX tx = new ThreadX();&lt;br /&gt;
    tx.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: setDaemon(boolean b) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import static java.util.concurrent.TimeUnit.SECONDS;&lt;br /&gt;
public class MainClass extends Thread {&lt;br /&gt;
  // This field is volatile because two different threads may access it&lt;br /&gt;
  volatile boolean keepRunning = true;&lt;br /&gt;
  public MainClass() {&lt;br /&gt;
    setDaemon(true);&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    while (keepRunning) {&lt;br /&gt;
      long now = System.currentTimeMillis();&lt;br /&gt;
      System.out.printf(&amp;quot;%tr%n&amp;quot;, now);&lt;br /&gt;
      try {&lt;br /&gt;
        Thread.sleep(1000);&lt;br /&gt;
      } catch (InterruptedException e) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void pleaseStop() {&lt;br /&gt;
    keepRunning = false;&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    MainClass thread = new MainClass();&lt;br /&gt;
    thread.start();&lt;br /&gt;
    try {&lt;br /&gt;
      SECONDS.sleep(10);&lt;br /&gt;
    } catch (InterruptedException ignore) {&lt;br /&gt;
    }&lt;br /&gt;
    thread.pleaseStop();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: setDaemon(boolean on) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
class MyThread extends Thread {&lt;br /&gt;
  MyThread() {&lt;br /&gt;
    setDaemon(true);&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    boolean isDaemon = isDaemon();&lt;br /&gt;
    System.out.println(&amp;quot;isDaemon:&amp;quot; + isDaemon);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Thread thread = new MyThread();&lt;br /&gt;
    thread.setDaemon(true);&lt;br /&gt;
    thread.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler eh) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class MainClass extends JFrame {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new MainClass().setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public MainClass() {&lt;br /&gt;
    Container cp = getContentPane();&lt;br /&gt;
    JButton crasher = new JButton(&amp;quot;Crash&amp;quot;);&lt;br /&gt;
    cp.add(crasher);&lt;br /&gt;
    crasher.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        throw new RuntimeException(&amp;quot;You asked for it&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {&lt;br /&gt;
      public void uncaughtException(Thread t, Throwable ex) {&lt;br /&gt;
        System.out.println(&amp;quot;You crashed thread &amp;quot; + t.getName());&lt;br /&gt;
        System.out.println(&amp;quot;Exception was: &amp;quot; + ex.toString());&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    pack();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: setName(String name) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
current thread: Thread[My Thread,1,main]&lt;br /&gt;
currently active threads: 1&lt;br /&gt;
0: Thread[My Thread,1,main]&lt;br /&gt;
java.lang.Exception: Stack trace&lt;br /&gt;
  at java.lang.Thread.dumpStack(Thread.java:1158)&lt;br /&gt;
  at MainClass.main(MainClass.java:23)&lt;br /&gt;
 * &lt;br /&gt;
 &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Thread t = Thread.currentThread();&lt;br /&gt;
    t.setName(&amp;quot;My Thread&amp;quot;);&lt;br /&gt;
    t.setPriority(1);&lt;br /&gt;
    System.out.println(&amp;quot;current thread: &amp;quot; + t);&lt;br /&gt;
    int active = Thread.activeCount();&lt;br /&gt;
    System.out.println(&amp;quot;currently active threads: &amp;quot; + active);&lt;br /&gt;
    Thread all[] = new Thread[active];&lt;br /&gt;
    Thread.enumerate(all);&lt;br /&gt;
    for (int i = 0; i &amp;lt; active; i++) {&lt;br /&gt;
      System.out.println(i + &amp;quot;: &amp;quot; + all[i]);&lt;br /&gt;
    }&lt;br /&gt;
    Thread.dumpStack();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: setPriority(int newPriority) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
current thread: Thread[My Thread,1,main]&lt;br /&gt;
currently active threads: 1&lt;br /&gt;
0: Thread[My Thread,1,main]&lt;br /&gt;
java.lang.Exception: Stack trace&lt;br /&gt;
  at java.lang.Thread.dumpStack(Thread.java:1158)&lt;br /&gt;
  at MainClass.main(MainClass.java:23)&lt;br /&gt;
 * &lt;br /&gt;
 &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Thread t = Thread.currentThread();&lt;br /&gt;
    t.setName(&amp;quot;My Thread&amp;quot;);&lt;br /&gt;
    t.setPriority(1);&lt;br /&gt;
    System.out.println(&amp;quot;current thread: &amp;quot; + t);&lt;br /&gt;
    int active = Thread.activeCount();&lt;br /&gt;
    System.out.println(&amp;quot;currently active threads: &amp;quot; + active);&lt;br /&gt;
    Thread all[] = new Thread[active];&lt;br /&gt;
    Thread.enumerate(all);&lt;br /&gt;
    for (int i = 0; i &amp;lt; active; i++) {&lt;br /&gt;
      System.out.println(i + &amp;quot;: &amp;quot; + all[i]);&lt;br /&gt;
    }&lt;br /&gt;
    Thread.dumpStack();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: setUncaughtExceptionHandler(UncaughtExceptionHandler eh) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Thread thread = new Thread(new MyThread());&lt;br /&gt;
    thread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {&lt;br /&gt;
      public void uncaughtException(Thread t, Throwable e) {&lt;br /&gt;
        System.out.println(t + &amp;quot; threw exception: &amp;quot; + e);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    thread.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyThread implements Runnable {&lt;br /&gt;
  public void run() {&lt;br /&gt;
    throw new ArithmeticException();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: start ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 *  run&lt;br /&gt;
 */&lt;br /&gt;
class caller implements Runnable {&lt;br /&gt;
  String msg;&lt;br /&gt;
&lt;br /&gt;
  public caller(String s) {&lt;br /&gt;
    msg = s;&lt;br /&gt;
    new Thread(this).start();&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    System.out.println(&amp;quot;run&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    new caller(&amp;quot;Hello&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thread: stop ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
    29465957 vs. -1589812543&lt;br /&gt;
 *   &lt;br /&gt;
 * &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
class MyThread implements Runnable {&lt;br /&gt;
  public int click = 0;&lt;br /&gt;
  private Thread t;&lt;br /&gt;
  private boolean running = true;&lt;br /&gt;
  public MyThread(int p) {&lt;br /&gt;
    t = new Thread(this);&lt;br /&gt;
    t.setPriority(p);&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    while (running) {&lt;br /&gt;
      click++;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void stop() {&lt;br /&gt;
    running = false;&lt;br /&gt;
  }&lt;br /&gt;
  public void start() {&lt;br /&gt;
    t.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Thread.currentThread().setPriority(Thread.MAX_PRIORITY);&lt;br /&gt;
    MyThread hi = new MyThread(Thread.NORM_PRIORITY + 2);&lt;br /&gt;
    MyThread lo = new MyThread(Thread.NORM_PRIORITY - 2);&lt;br /&gt;
    lo.start();&lt;br /&gt;
    hi.start();&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(10000);&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
    }&lt;br /&gt;
    lo.stop();&lt;br /&gt;
    hi.stop();&lt;br /&gt;
    System.out.println(lo.click + &amp;quot; vs. &amp;quot; + hi.click);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Threah.sleep(long millis) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Output:&lt;br /&gt;
 * &lt;br /&gt;
   ]&lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(1000);&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;]&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>