0
点赞
收藏
分享

微信扫一扫

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

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



举报

相关推荐

0 条评论