java面试题进程的线程的区别:

关系:

1.      一个线程只属于一个进程,而一个进程可以有多个线程,但至少有一个线程

2.      资源分配进程:同一进程的所有线程共享该进程的所有资源

3.      处理分给线程:即真正处理上运行的是线程

4.      线程在执行过程中需要同步,不同进程的线程间要利用消息通信的办法实现同步,线程是指进程内的一个执行单元,也是进程内的可调度实体

②  区别:

1. 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位

2. 并发性:不仅进程之间可以并发执行,同一进程的多个线程也可以并发执行

3. 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问属于进程的资源

4. 系统开销:在创建或撤销过程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤销线程时的开销

                死锁

死锁的原因:

1. 系统资源的不足

2. 进程运行推进不合适

3. 资源分配不当

如果系统资源充足,进程的资源请求都能够得到满足,死锁的可能性就很低,否则则就会因争夺资源而陷入死锁,其实,其实运行推进顺序与速度不同,也可能产生死锁

产生死锁的四个必要条件:

1. 互斥条件:一个资源每次只能被一个进程使用

2. 请求与保持条件:一个进程因请求资源而阻塞时,对已获得资源保持不放

3. 不剥夺条件:进程以获得的资源在未使用完之前,不能强行剥夺

4. 循环等待条件:若干进程之间的形成一种头尾相接的循环等待资源关系

               解决死锁:

① 避免事物中的用户交互

② 保持事务简短并在一个批处处理

③ 使用低隔级别

 


你可能感兴趣的:(java面试题进程的线程的区别:)