进程

一个进程就是一个正在执行的程序(如 windows 系统中的 qq.exe、host.dll)。进程拥有独立的内存空间、系统资源,但是可以相互通信。
image.png

线程

线程是指在进程中一个个单独的任务控制流。多个线程(多线程)共享一个内存空间和系统资源。一个进程可以并发很多个线程,每个线程执行不同的任务,但是开销要比进程小得多,可被成为轻量级线程。

知乎上有个比喻:进程是火车,线程是每节车厢,但无论进程还是线程都是指 CPU 对程序工作时间段的描述

主线程

程序运行时至少有一个主线程,主要负责其他线程的启动、挂起、停止等操作。其他线程被称为子线程。

高并发

高并发经常与多线程同时提起,区别是高并发是系统运行的一种状态:短时间内处理多种资源、操作请求,如每年双十一0点千万人在线购物操作。多线程指的是完成任务的一种方法。

提高高并发方法

  • 静态资源结合CDN来解决图片文件等访问
  • 分布式缓存:redis、memcached等
  • 消息队列中间件:activeMQ等,解决大量消息的异步处理能力
  • 应用拆分: 一个工程被拆分为多个工程部署
  • 数据库垂直拆分和水平拆分(分库分表)等
  • 数据库读写分离,解决大数据的查询问题
  • 利用 NoSql ,例如 mongoDB 配合 mysql 组合使用
  • 建立大数据访问情况下的服务降级以及限流机制等