一般来说,主方法main()结束的时候线程结束

suspend()是将一个运行时状态进入阻塞状态(注意不释放锁标记)。恢复状态的时候用resume()。Stop()指释放全部。

这几个方法上都有Deprecated标志,说明这个方法不推荐使用。

 

一般来说,主方法main()结束的时候线程结束,可是也可能出现需要中断线程的情况。对于多线程一般每个线程都是一个循环,如果中断线程我们必须想办法使其退出。

 

如果主方法main()想结束阻塞中的线程(比如sleep或wait)

那么我们可以从其他进程对线程对象调用interrupt()。用于对阻塞(或锁池)会抛出例外Interrupted Exception。

这个例外会使线程中断并执行catch中代码。

 

多线程中的重点:实现多线程的两种方式,Synchronized,以及生产者和消费者问题(ProducerConsumer.java文件)。

 

 1 package TomTexts;
 2 
 3 import java.util.*;
 4     class Counter { 
 5           int i = 1; 
 6           public String toString() { 
 7                 return Integer.toString(i); 
 8           }
 9         }
10         class TomTexts_23 {
11           public static void main(String[] args) {
12                 Hashtable ht = new Hashtable();
13                 for(int i = 0; i < 10000; i++) {
14                       // Produce a number between 0 and 20:
15                       Integer r = new Integer((int)(Math.random() * 20));
16                   if(ht.containsKey(r))
17                         ((Counter)ht.get(r)).i++;
18                   else
19                         ht.put(r, new Counter());
20                 }
21                 System.out.println(ht);
22           }
23         } 

 

posted @ 2018-08-05 11:42  borter  阅读(1777)  评论(0编辑  收藏  举报