美文网首页
Go并发编程实战

Go并发编程实战

作者: Blue_Sky_2017 | 来源:发表于2018-12-02 21:45 被阅读30次

第一章 go语言

  • 语言特性
    
    1. 开放源代码
    2. 静态类型和编译型
    3. 跨平台
    4. 自动垃圾回收
    5. 原生的并发编程
    6. 完善的构建工具
    7. 多编程范式
    8. 代码风格强制统一
    9. 高效的编程和运行
    10. 丰富的标准库
  • 安装和设置
    
    1. API文件夹:依照GO版本顺序的API增量列表文件
    2. bin文件夹:主要的标准命令文件,包括(go/godoc/gofmt)
    3. blog文件夹:官方博客文章
    4. lib文件夹:特殊库文件
    5. misc文件夹:辅助类的说明和工具
    6. pkg文件夹:安装Go标准库后的所有归档文件
    7. src文件夹:存放Go自身、Go标准工具以及标准库的所有源码文件
    8. test文件夹:测试和验证Go本身的所有相关文件
  • 工程结构
    
    1. src目录:用于以代码包的形式组织并保存Go源码文件
    2. pkg目录:用于存放通过go install命令安装后的代码包的归档文件
    3. bin目录:保存由Go命令源码文件生成的可执行文件
  • 标准命令简述
    
    1. go工具包子命令
    build :编译指定Go语言源码文件
    cleam :清除执行go命令遗留下来的临时目录和文件
    doc :Go语言代码包以及程序实体文档
    env :打印GO语言相关的环境信息
    fix :修正指定代码包的源码文件和包含的过时语法和代码调用
    fmt :格式化指定代码包中的GO源码文件
    generate :识别指定代码包中源码文件的go:generate注释
    get :用于下载、编译并安装指定的代码包及依赖包
    install :编译并安装指定的代码包及其依赖包
    list :显示指定代码包的信息
    run :编译并运行指定的命令源码文件
    test :测试指定的代码包
    tool :运行Go语言的特殊工具
    vet :检查指定代码包中的Go语言源码
    version :显示当前安装的GO语言的版本信息及计算环境
    tool pprof:用于以交互的方式访问一些性能概要文件
    tool trace:用于读取Go程序踪迹文件,并以图形化的方式展示出来
    
    1. go程序示例
    package main
    import(
        “bufio”
        “fmt”
        “os”
    )
    func main(){
        inputReader :=bufio.NewReader(os.Stdin)
        fmt.Println("Please input your name :")
        input,err :=inputReader.ReadString('\n')
        if err !=nil {
            fmt.Printf("Found an error :%\n",err)
        }else{
            input = input[:len(input)-1]
            fmt.Prinf("Hello,%s!\n",input)
        }
    }
    

第二章 语法概览

  • 基本构成要素
    
    • 标识符
      go特殊标识符即预定义标识符:
      1. 所有基本数据类型的名称
      2. 接口类型error
      3. 常量true、false、iota
      4. 内建函数的名称:append、cap、close、complex、copy、delete、imag、len、make、new、panic、print、println、real、recover
      ~~~强调:空标识符~:由下划线_表示
      
    • 关键字
    类别    | 关键字
    --------|--------
    程序申明    | import和packege
    程序实体声明和定义  | chan/const/func/interface/map/struct/type/var
    程序流程控制  | go/select/break/case/continue/default/defer/else/fallthrough/for/goto/if/range/return/switch

- 字面量
    1. 用于表示基础数据类型值的各种字面量
    2. 用于构造各种自定义的符合数据类型的类型的类型字面量
    3. 用于表示复合数据类型的值的复合字面量
- 操作符
~~重点:操作符优先级~~
- 表达式
    示例:
    ```
    var i1 I1
    var ok bool
    i1,ok = interface{}(v1)(I1)
    简写:i1,ok := interface{}(v1)(I1)
    ```
  • 基本类型
      ```
      const DEFAULT_IP_string = "192.168.0.1"
      const DEFAULT_PORT int = 9001
      简写:
      const(
          DEFAULT_IP_string = "192.168.0.1"
          DEFAULT_PORT int = 9001
      )
      ```
    
  • 高级类型
    
    • 自定义数据类型的模版或制作工具
    • 数组
    • 切片
    • 字典
    • 函数和方法
      示例
      type myInt int
      func(i myInt) add(another int) myInt{
          i = i + myInt(another)
          return i
      }
      
    -接口
  • 流程控制
    
    • Go在流程控制方面特点如下:
    1. 没有do 和 while循环,只有一个更广义的for语句
    2. switch语句灵活多变,还可以用于类型判断
    3. if语句和switch语句都可以包含一条初始化子语句
    4. break语句和continue语句可以后跟一条标签(label)语句,以标识需要终止或继续的代码块
    5. defer语句可以使我们更加方便的执行异常捕获和资源回收人物
    6. select语句也用于多分之选择,但只与通道配合使用
    7. go语句用于异步启用goroutine并执行指定函数
    
    
    • 代码块和作用域
      package main
      import(
      "fmt"
      )
      var v = "1,2,3"
      func main(){
          v := []int{1,2,3}
          if v != 123
          fmt.Printf("%v\n",v)
          }
      }
      
    • if语句/switch语句/for语句/range子句/defer语句/panic和recover

第三章 并发编程综述

  • 并发编程基础
    
  • 多进程编程
    
  • 多线程编程
    
  • 多线程与多进程
    
  • 多核时代的并发编程
    

第四章 go的并发机制

  • 原理探究
    
  • goroutine
    
  • channel
    
  • 实战演练:载荷发生器
    

第五章 同步

  • 锁的作用
    
  • 条件变量
    
  • 原子操作
    
  • 只会执行一次
    
  • WaitGroup
    
  • 临时对象池
    
  • 实战-ConcurrentMap
    

第六章 网络爬虫框架设计和实现

  • 网络爬虫与框架
    
  • 功能需求与分析
    
  • 总体设计
    
  • 详细设计
    
  • 工具的实现
    
  • 组件的实现
    
  • 调度器的实现
    
  • 简单图片爬虫
    
  • 扩展与思路
    

相关文章

  • Go语言——原子操作

    Go语言——原子操作 参考: 《Go并发编程实战(第2版)》 Background 原子操作即执行过程不能被中断的...

  • Go并发编程实战

    第一章 go语言 语言特性开放源代码静态类型和编译型跨平台自动垃圾回收原生的并发编程完善的构建工具多编程范式代码风...

  • select的常见用法

    原文:《go并发编程实战》 select 常与匿名函数连用,以便不阻塞主程序。 select 常与for循环连用,...

  • Java并发 - Future模式

    标签:原创 Java 并发 更多Java并发实战内容,请参考Java并发 - 并发编程实战 理解Future 关于...

  • Go基础语法(九)

    Go语言并发 Go 是并发式语言,而不是并行式语言。 并发是指立即处理多个任务的能力。 Go 编程语言原生支持并发...

  • Go并发

    Go语言中的并发编程 并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很...

  • 瞅一眼就会使用GO的并发编程分享

    [TOC] GO的并发编程分享 之前我们分享了网络编程,今天我们来看看GO的并发编程分享,我们先来看看他是个啥 啥...

  • JAVA并发编程实战.pdf 免费下载

    下载地址:JAVA并发编程实战.pdf

  • go| go并发实战: 搭配 influxdb + grafan

    date: 2018-4-27 16:22:14title: go| go并发实战: 搭配 influxdb + ...

  • 29-CompletionService和ExecutorCom

    CompletionService和ExecutorCompletionService 《Java并发编程实战》一...

网友评论

      本文标题:Go并发编程实战

      本文链接:https://www.haomeiwen.com/subject/zevscqtx.html