今天了解了下多线程编程,知识点如下:
-
进程与线程:
-
进程是什么?线程是什么?
进程可以看作是程序的实体,是线程的容器,是受操作系统管理的基本运行单元,例如exe文件就是一个进程。
线程是进程运行的一些子任务,是操作系统调度的最小单元,各线程拥有自己的计数器,堆栈,局部变量等,也可以访问线程间共享的内存。 -
线程的状态有哪些?
新创建,可运行,等待,超时等待,阻塞,终止 -
怎么创建一个线程?
-三种方法
第一种,MyTread继承Tread,在MyTread的run函数中写要在新线程里运行的代码,在需要的地方创造实例并且调用start;
第二种,实现Runnerable接口,重写他的run函数,并且用runnable的实例来构造Tread,最后调用start;
第三种,实现接口callable,并重写call函数,这个方法与第二种不同之处在于,call可抛出异常但是run不可以,而且运行callable可以拿到一个Futrue值; -
中断
导致中断的情况分两种,一种是运行完run之后线程自然结束;另一种是运行过程中抛出异常。
注意一个线程如果处于阻塞状态,线程检查是否中断的时候发现标志位为true,会抛出中断异常,但是抛出前会把标志位置为false,所以无法判断一个阻塞的线程是否被中断。 -
如何安全的终止线程
使用中