程序,进程,线程详解
1,程序: 指令集,及我们敲的code,静态概念
2,进程:操作系统调用程序,动态概念,每个进程都是独立的,占用内存,cpu调度
3,线程:进程内的多条执行路径,它是一个轻量级的进程
进程和线程的区别
根本区别:进程作为资源分配的单元,线程调度和执行的单元
开销:进程开销大,线程切换开销少
内存:系统为进程分配不同的内存空间,线程使用所属进程的资源,
包含;进程包含一个或多个线程,线程是一个轻量级的进程
线程的创建:
方法一:extends 继承 Thread类,重写run(),实例化该类,调用start()方法,启动线程,该方法的缺点;java单继承,继承Thread类,无法再继承其他类,没有拓展性
方法二:实现Runnable接口(用到静态代理),重写run(),实例化该类(真实角色),传入到Thread类中(代理类),调用start(),启动
方法三:实现Callable接口,优点:可以返回值,可以对外声明异常,繁琐,重写call()