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

Posted borter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一般来说,主方法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         } 

 

以上是关于一般来说,主方法main()结束的时候线程结束的主要内容,如果未能解决你的问题,请参考以下文章

C++并发与多线程 2_线程启动结束,创建线程多种方法,join,detach

java 后台线程自己断掉一般是啥由原因引起的?

守护线程

java线程执行完后自己结束吗

pythony中子进程如果一定时间不结束就停止应该如何做?

二线程创建结束