码迷,mamicode.com
首页 > 其他好文 > 详细

网络概念小结

时间:2018-12-14 17:40:16      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:结构   隔离   效果   多进程   多线程   切换   不同   程序   理解   

什么是进程?
  就是为了形容执行中的程序的一种称呼
  它是操作系统中资源分配的最小单位
  进程之间是数据隔离的,占用操作系统资源相对多
  独立存在的


谈谈对并发的理解?
  同时有多个任务需要执行但是资源有限
  所以我们会利用一些手段:多进程\多线程\协程来完成任务
  来提高用户体验,达到多个任务在同一个时间段内同时执行的效果

什么是线程?
  轻量级进程,直接被CPu调用,不能独立存在的轻量级进程
  同一进程中的多个线程之间数据共享


你对GIL的理解?
  全局解释器锁,是用来锁线程的,Cpython解释器提供的
  导致了同一时刻只能有一个线程访问Cpu
  是一个历史遗留问题

你对异步非阻塞的理解?
异步:一个任务的执行不需要等待另个任务的结束
非阻塞: 没有阻塞
     设置非阻塞(socket对象调用setblocking(False))


什么是协程?
  协程是用户级的,对操作系统不可见
  使用户为了提高一条线程对CPU的利用率才出现的概念
  协程能实现一条线程上的多个任务相互切换
  为了提高效率,用户可以控制协程在一个任务中遇到IO就切换另一个任务


协程和线程比起来?

  协程不存在数据不安全问题
  协程不能处分利用多核
  但是线程在Cpython解释器下实际上也不能利用多核
  所以相对来说,协程实际上在python中是更好的工具

什么是IO多路复用?
  操作系统提供的代理,监听网络对象的IO操作

常见的IO多路复用机制?
  select:轮询的方式获取每个对象的状态
  poll:底层数据结构与select不同,进行了优化,能够储存更多的对象,也是轮询的方式
  epoll:不采用轮询的方式来获取每个对象的状态,而是采用回调函数的方式,
      所以wait for data 阶段 一收到数据就可以立即通知应用程序
      提高了效率,也减轻了操作系统的负担










网络概念小结

标签:结构   隔离   效果   多进程   多线程   切换   不同   程序   理解   

原文地址:https://www.cnblogs.com/systemsystem/p/10119658.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!