进程和线程的区别
1、进程是资源分配和调度的基本单位,是计算机中的程序对某数据集合上的一次运行活动,是线程的容器,也程序的实体。是资源调度的最小单位。 (是系统中正在运行的一个应用程序,是)
线程是程序执行的最小单位,一个线程是进程中独立执行的单元执行流,一个进程可以包括多个线程。
每个进程的逻辑内存是相互独立的,每个线程可以使用threadlocal存储自己数据thread local storage
线程之间会共享进程的内存。进程之间的通信会通过TCP/IP端口通信。
一个线程可以创建和撤销其他线程
2.sleep 和wait的区别
sleep 进入休眠,但不会释放锁,是Thread类的方法,
wait 等待 ,会释放锁,属于object的方法,与notify ,notifyAll()联合使用
3.submit 和 execute 方法的区别
两者都是线程池的方法,execute属于Executore, submit属于Execute Service;实现类ThreadPoolExecutor重写了execute方法,抽象类AbstractExecutorService重写了submit方法。
execute只能提交runnable类型的任务,submit既能提交runnable类型的任务也能提交Callable类型的任务。
execute会直接抛出异常。submit 会吃掉异常,可通过Future的get方法将任务执行时异常抛出
网友评论