• 多协成利用互斥锁按顺序执行读取文件


    text文本

    1、动态规划比递归快-LeetCode91-解码方法
    2、Linux内存描述之内存节点node--Linux内存管理
    3、笔试题—字符串常见的算法题集锦
    4、机器学习系列(14)_SVM碎碎念part2:SVM中的向量与空间距离
    5、大数运算(7)——大数阶乘(求阶乘)
    6、经典设计模式实战演练
    7、数独求解算法(回溯法和唯一解法)java实现
    8、int和byte之间的转换
    9、matlab读取数据文件
    package main
    import (
        "os"
        "bufio"
        "io"
        "fmt"
        "sync"
        "time"
    )
    
    
    func main()  {
        var wg sync.WaitGroup
        var locker sync.Mutex
        file,_:=os.OpenFile("./src/gocode/jt/test",os.O_RDONLY,666)
        defer  file.Close()
        fw:=bufio.NewReader(file)
    
        for i:=1;i<=2;i++{
            go func(index int) {
                defer  wg.Done()
                for{
                    locker.Lock()
                    str,err:=fw.ReadString('
    ')
                    if err!=nil{
                        if err==io.EOF{
                            locker.Unlock()
                            break
                        }
                        fmt.Println(err)
                    }
                    time.Sleep(time.Millisecond*200)
                    fmt.Printf("【协程%d】:%s",index,str)
                    locker.Unlock()
                }
            }(i)
        }
        wg.Add(2)
        wg.Wait()
        fmt.Println("读取完成")
    
    }

    执行结果:

    【协程2】:1、动态规划比递归快-LeetCode91-解码方法
    【协程2】:2、Linux内存描述之内存节点node--Linux内存管理
    【协程1】:3、笔试题—字符串常见的算法题集锦
    【协程2】:4、机器学习系列(14)_SVM碎碎念part2:SVM中的向量与空间距离
    【协程1】:5、大数运算(7)——大数阶乘(求阶乘)
    【协程2】:6、经典设计模式实战演练
    【协程1】:7、数独求解算法(回溯法和唯一解法)java实现
    【协程2】:8、int和byte之间的转换
    【协程1】:9、matlab读取数据文件
    读取完成

    Process finished with exit code 0

  • 相关阅读:
    Colocate Join :ClickHouse的一种高性能分布式join查询模型
    Spring Cache设计之美,你品,你细品…
    Java反射机制清空字符串导致业务异常分析
    带你了解TensorFlow pb模型常用处理方法
    代码检查工具 好的程序员都应该进行代码检查
    docker启动consul
    SpringCloud的主要功能
    docker容器相关
    模型函空运左快
    docker使用nacos
  • 原文地址:https://www.cnblogs.com/sunlong88/p/11240973.html
Copyright © 2020-2023  润新知