• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
孙龙 程序员
少时总觉为人易,华年方知立业难
博客园    首页    新随笔    联系   管理    订阅  订阅
多协成利用互斥锁按顺序执行读取文件

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('\n')
                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

 

本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/11240973.html

posted on 2019-07-24 21:28  孙龙-程序员  阅读(372)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3