进程和线程相关

一、进程、线程

1、概念:

进程是表示资源分配的基本单位,或者说是调度运行的基本单位。例如:用户运行自己的程序,系统就创建一个进程,并为它分配资源,内存空间、磁盘空间、I/O设备等。进程被放入进程的就绪队列,为它分配CPU及其它有关资源,进程开始运行。所以,进程是系统中的并发执行单位

线程是进程执行运算的最小单位,进程逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。
when(何时需要多线程):①多用户请求的高并发  ②大任务
why (多线程的好处): ①易于调度 ②提高并发性③开销小,创建线程比创建进程快,所需开销很少④利于充分发挥多处理器的功能,每个线程在一个处理器上运行,从而实现并发性,让每个处理器充分运行
why not(多线程的问题):①多线程的切换,影响性能 ②更多的线程需要更多内存空间 ③存在线程安全问题,如死锁等情况的发生

2、进程、线程关系

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。
(3)处理机分给线程,即真正在处理机上运行的是线程。
(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。线程是指    进程内的一个执行单元,也是进程内的可调度实体。

协程又称微线程,是比线程更加轻量级的存在,协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。好处就是性能得     到很大的提升,不会像线程切换那样消耗资源。

3、进程、线程区别

(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.
(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

4、通信方式

1、进程间通信

(1)管道及有名管道

管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信

(2)信号

(3)消息队列

(4)共享内存

最有用的进程间通信方式,使得不同进程可以访问同一块内存,且看到对共享内存中数据的更新。但需要依靠同步操作,如互斥锁或信号量等

(5)信号量

主要作为进程之间及同一种进程的不同线程之间得同步和互斥手段

(6)套接字

这是一种更为一般得进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。

2、线程间通信

(1)同步,多个线程通过synchronized关键字这种方式来实现线程间的通信。
(2)while轮询,利用volatile关键字的可见性
(3)wait/notify/notifyAll机制
(4)管道通信

5、进程、线程性能比较在这里插入图片描述

结论:
①需要频繁的创建与销毁,优先使用线程。比如说在web应用中,需要频繁的创建与销毁连接,这时使用多线程为佳。
②后台需要大量的计算,优先使用线程。一般需要保证用户界面响应速度的系统都需要使用多线程,将后台运算和用户界面分成两个线程。
③需要保证系统的稳定性,使用进程。对于需要长时间保持运行的程序,尽量使用进程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值