zoukankan      html  css  js  c++  java
  • 《Go并发编程实战》系列二:多线程编程

    Go并发编程模型在低层是由操作系统所提供的线程库支撑的。

    线程

    线程可视为进程中的控制流,一个进程至少会包含一个线程。一个进程可以包含多个线程。拥有多个线程的进程可以并发执行多个任务,并且及时某个或某些任务被阻塞,也不会影响其他任务正常执行。
    一个进程中的所有线程都拥有自己的线程栈,并以此存放自己的私有数据。这些线程的线程栈都包含在其所属进程的虚拟内存地址中。一个进程的很多资源都会被其中的所有线程共享,被共享的资源包括在当前进程的虚拟内存地址中存储的代码段、数据段、堆、信号处理函数,以及当前进程所持的文件描述符,等等。

    线程的标识

    每个线程也都有属于自己的ID,这类ID也称为线程ID或者TID,线程ID只在其所属进程的范围内唯一。
    线程ID是有操作系统内核分配和维护的。

    线程的控制

    与进程不同的是同一个进程中的任意两个线程之间的关系都是平等的,之间并不存在层级关系。任何线程都可以对统一进程中的其他线程进行有限的管理。
    主要包括以下四种:

    1. 创建线程
    2. 终止线程
    3. 连接已终止的线程
    4. 分离线程
      线程也可对自身进行两种控制:终止(return)和分离(pthread_detach)

    线程的状态

    线程在从创建到终止的完整生命周期中也经常会在多个状态之间切换。(就绪状态->运行状态->睡眠状态,僵尸状态,终止状态)

  • 相关阅读:
    Authentication for the REST APIs
    Authentication for the REST APIs
    泛型转Datatable
    Web API 返回json文件的2中不用方式
    Robotframework自定义关键字库
    python通过接口上传图片造测试数据
    robot framework(2) 环境搭建
    RobotFrameWork(1) 关键字驱动测试框架
    python发送带附件的邮件
    解决adb连接海马玩模拟器
  • 原文地址:https://www.cnblogs.com/lvpengbo/p/15546697.html
Copyright © 2011-2022 走看看