抱歉,您的瀏覽器無法訪問本站
本頁面需要瀏覽器支持(啟用)JavaScript
了解詳情 >

进程、线程、协程有什么区别

进程通俗理解一个运行起来的程序或者软件就叫进程,可以理解进程就是负责获取系统资源,他是操作系统分配资源的基本单位

线程是依附于进程里面的,线程是cpu调度的基本单位,同一个进程间的线程共享同一片内存空间,线程之间通信主要使用共享内存。

协程是一种用户态的轻量级线程,协程的调度完全由用户控制。

进程之间如何通信

  1. 管道,例如Linux中的|
  2. 消息队列
  3. 共享内存
  4. 信号量
  5. Socket

不同的语言是如何实现协程这个概念的

一文看懂Go语言协程的设计与原理 - 掘金 (juejin.cn)

从浏览器发送一次请求后,经历了什么

  • 使用DNS协议获取服务器IP地址。
  • 把请求的数据组织成HTTP的Start Line、Body 和 Headers, HTTP的数据组织完成,发送到TCP处理。
  • TCP进行三次握手建立连接(也可以复用已建立的连接)。HTTP的数据可能会分成多个TCP Segment(TCP的数据包叫TCP Segment), 每个TCP Segment都会加上TCP的Headers,以实现TCP的能力(保证可靠),之后TCP Segment发送到IP层。
  • (可选)如果使用了HTTPS,这里会在TCP的基础上建立TLS连接。在HTTP 和 TCP之间,TLS要进行数据的加密和解密。
  • IP层拿到TCP Segment之后,加上IP层的Headers(提供了实现路由协议的数据),组织成IP Packet(IP层的数据包叫IP Packet), 然后发到MAC层。
  • MAC层拿到IP Packet后, 加上MAC层的Headers, 组织成Ethernet Frame(MAC层以太网数据包叫Ethernet Frame), 通过硬件网卡发出去。
  • 经过中间设备的转发,最终到达服务器,然后一层一层地去掉Headers,向上传输,直到应用层。

单体服务和微服务的优缺点

单体服务优缺点:

  • 优点:部署简单、技术单一
  • 缺点:系统启动慢,系统错误隔离性差,可伸缩性差(只能对整个应用扩容,不能对某个核心功能点进行扩展)

微服务优缺点:

  • 优点:易于开发和维护,只用专注于一个特定业务功能开发,微服务之间技术栈不受限制,按需进行收缩,局部修改易部署。
  • 缺点:运维成本高,调用复杂性高,分布式事务等。

为什么Go的协程使用通道来进行通信

目前未找到特别好的资料

项目中遇到了什么难点

nlp

索引有哪些设置原则,优化原则

背下网上数据库的相关面试题就好拉