进程与线程的区别:
-
线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
-
一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
-
进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;
-
调度和切换:线程上下文切换比进程上下文切换要快得多。
多线程:
多线程工作实例1:实现类似并发执行的效果,实际上并非并发,是多个线程间进行上下文的切换
程序中,启动了50个线程,每个线程在执行run方法时,均sleep两秒,在程序结束时,实际上总体时间仅仅用了2秒多。
守护线程:设置子线程为守护线程时,当主线程结束时,子线程即结束,不会等待子线程执行完毕
守护线程实例: