进程的本质是一个正在执行的程序,程序运行时系统会创建一个进程,并且 给每个进程分配独立的内存地址空间保证每个进程地址不会相互干扰。
线程是任务调度和执行的基本单位,同一类线程共享代码和数据空间,切换的开销小,一个进程包含多个线程
线程的终止:
1.run方法执行完自动退出
2.stop方法,废弃。不会保证线程的资源正常释放,比如说文件流,连接池。
3. interrupt() 中断线程
线程中打一个停止的标记,并不是真的停止线程。线程通过isInterrupted()来判断是否被中断, 自行做处理
stop 方法终止线程(线程不安全)
程序中可以直接使用 thread.stop()来强行终止线程,但是 stop 方法是很危险的,就象突然关
闭计算机电源,而不是按正常程序关机一样,可能会产生不可预料的结果,不安全主要是:
thread.stop()调用之后,创建子线程的线程就会抛出 ThreadDeatherror 的错误,并且会释放子
线程所持有的所有锁。一般任何进行加锁的代码块,都是为了保护数据的一致性,如果在调用
thread.stop()后导致了该线程所持有的所有锁的突然释放(不可控制),那么被保护数据就有可能呈
现不一致性,其他线程在使用这些被破坏的数据时,有可能导致一些很奇怪的应用程序错误。因
此,并不推荐使用 stop 方法来终止线程。