多线程概念小结

 

一 进程与线程

二 并行与并发

三 高并发

四 同步与异步

参考


一 进程与线程

操作系统是包含多个进程的容器,而每个进程又都是容纳多个线程的容器。

进程和线程的不同:

  1. 起源不同,先有进程后有线程,为了提高CPU的利用率才诞生了多线程。
  2. 概念不同,进程是具有独立功能的程序,是一个运行起来的实例,是系统分配和调动资源的一个独立单位。线程是CPU的基本调度单位。
  3. 内存共享方式上不同,对于进程而言,不同的进程之间,操作系统都会配分一定的内存,内存通常是不共享的。线程与线程之间内存共享要容易得多,因为这些线程本身可能就服务于同一个线程。
  4. 拥有的资源不同,线程拥有的资源少于进程。
  5. 数量不同,一个进程至少拥有一个线程,可能包含多个线程,甚至几百个。
  6. 开销不同:
  • 线程的创建、终止时间比进程短;
  • 同一进程内的线程切换时间比进程切换短;
  • 同一进程的各个线程间共享内存和文件资源,可以不通过内核进行通信。

 

线程共享的内容包括:

1)进程代码段;

2)进程的共有数据(利用这些共享的数据,线程很容易实现相互的通讯);

3)进程打开的文件描述符;

4)信号的处理器;

5)进程的当前目录;

6)进程用户ID与进程组ID。

 

线程独有的内容包括:1.线程ID;2.寄存器组的值;3.线程的堆栈;4.错误返回码;5.线程的信号屏蔽码。

 

多线程概念:如果一个程序允许两个或以上的线程,那么它就是多线程程序。多线程是指在单个进程中运行多个线程。

 

二 并行与并发

并发:有两种概念。

1)形容多个任务的执行状态,两个或多个任务可以在重叠时间段启动、运行和完成。

2)对“并发性”的简称。

并发:并不一定意味着并发一定要求并行。在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。

并行:在同一个时刻,真正的同时运行,有多个任务同时执行。例如在多核处理器上,有两个线程同时执行同一段代码。单核处理器无法实现并行。

 

 

 

三 高并发

高并发

概念:大量请求同时到达服务端。高并发是一种状态,高并发不意味着多线程,比如Redis的底层就是单线程处理的。

高并发指标:

  • QPS(Queries Per Second)每秒查询/请求数
  • 带宽
  • PV(Page View)
  • UV(Unique Visitor)
  • IP和UV的区别

 

四 同步与异步

同步与异步

同步与异步:被调用者是否主动告诉调用者结果,是则为异步,不是则为同步。

 

 同步:同步异步这里指的是被调用者(也就是服务器的行为),而不是请求方的行为。在没有得到结果之前,服务端就不返回任何结果。

异步:调用在发出之后,服务端会立刻返回,告诉调用方“我收到你的请求了,立即进行处理。”

 

参考

并发编程的“基石”——多线程概念建立:

http://naotu.baidu.com/file/b8a70ff9e7f3af1437594b2d0fb4ebfd?token=11150672c00909cb

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值