一般来说,主方法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 }