1、线程与进程的区别
进程是系统进行资源分配和调度的一个独立单位,线程是CPU调度和分派的基本单位
进程和线程的关系:
1、 一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
2、 资源分配给进程,同一进程的所有线程共享该进程的所有资源。
3、 线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
4、 线程是指进程内的一个执行单元,也是进程内的可调度实体。
线程与进程的区别:
1、 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。
2、 并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行。
3、 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资
源。
4、 系统开销:在创建或撤销进程的时候,由于系统都要为之分配和回收资源,导致系统的明显大于
创建或撤销线程时的开销。但进程有独立的地址空间,进程崩溃后,在保护模式下不会对其他的进程
产生影响,而线程只是一个进程中的不同的执行路径。线程有自己的堆栈和局部变量,但线程之间没
有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,
但是在进程切换时,耗费的资源较大,效率要差些。
2、什么是策略模式
定义了一系列的算法 或 逻辑 或 相同意义的操作,并将每一个算法、逻辑、操作封装起来,而且使它
们还可以相互替换。(其实策略模式Java中用的非常非常广泛)
我觉得主要是为了 简化 if...else 所带来的复杂和难以维护。
3、什么是游标?
游标是sql查询结果集的一个指针,与select语句相关联。
游标关键字是cursor,主要包含两个部分:游标结果集和游标位置。
1、 游标结果集:执行select语句后的查询结果
2、 游标位置:一个指向游标结果集内某条记录的指针。
游标主要有两个状态:打开和关闭。
1、 只有当游标处于打开状态时,才能够操作结果集中的数据
2、 当游标关闭后,查询结果集就不存在了
4、单例模式了解吗?给我解释一下双重检验锁方式实现单例模式!”
双重校验锁实现对象单例(线程安全)
说明:
双锁机制的出现是为了解决前面同步问题和性能问题,看下面的代码,简单分析下确实是解决了多线
程并行进来不会出现重复new对象,而且也实现了懒加载
public class Singleton { private volatile static Singleton uniqueInstance; private Singleton() { }
public static Singleton getUniqueInstance() { //先判断对象是否已经实例过,没有实例化过才进入