Viletyy Blog

「离开世界之前 一切都是过程」

Golang:Goroutine

什么是Goroutine Go中使用Goroutine来实现并发concurrently。 Goroutine是Go语言特有的名词。区别于进程Process,线程Thread,协程Coroutine,因为Go语言的创造者们觉得和他们是有所区别的,所以专门创造了Goroutine Goroutine是与其他函数或方法同时运行的函数或方法。Goroutines可以被认为是轻量级的线程。与线...

Golang:并发性Concurrency

并发性Concurrency 多任务 指操作系统可以同时执行多个任务 什么是并发 并发性Concurrency是同时处理许多事情的能力。 举个例子,假设一个人在晨跑。在晨跑时,他的鞋带松了。现在这个人停止跑步,系鞋带,然后又开始跑步。这是一个典型的并发性示例。这个人能够同时处理跑步和系鞋带,这是一个人能够同时处理很多事情 什么是并行性parallelism,它与并发concurrenc...

Golang:ioutil包

ioutil包 除了io包可以读写数据,go还提供了一个辅助的工具包就是ioutil。 1 import "io/ioutil" 该包的介绍只有一句话:Package ioutil implements some I/O utility functions. ioutil包的方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

Golang:bufio包

bufio包 这个包可以大幅提高文件读写的效率。 bufio包原理 bufio是通过缓冲来提高效率 io操作本身的效率并不低,低的是频繁的访问本地磁盘的文件。所以bufio就提供了缓冲区(分配一块内存),读和写都先在缓冲区中,最后再读写文件,来降低访问本地磁盘的次数,从而提高效率。 简单的说就是,把文件读取进缓冲(内存)之后再读取的时候就可以避免文件系统的io 从而提高速度。同理,在进行写...

Golang:实现断点续传

断点续传 Seeker接口 1 2 3 type Seeker interface { Seek(offset int64, whence int) (int64, error) } 第一个参数:偏移量, 第二个参数: 0:seekStart表示相对于文件开始 1:seekCurrent表示相对于当前偏移量 2:seekend表示相对于文件结尾 1 2 3...

Golang:实现文件复制

文件复制 在io包中主要是操作流的一些方法,今天主要学习一下。 它的原理都是通过程序,从源文件读取文件中的数据,在写出到目标文件里 io包下的Read()和Write()方法实现 通过io包下的Read()和Write()方法,边读边写,就能实现复制。这个方法是按块读取文件,块的大小也会影响到程序的性能 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17...

Golang:I/O操作

I/O操作 I/O操作也叫输入输出操作。其中I是指Input,O是指Output,用于读或者写数据的,有些语言中也叫流操作,是指数据通信的通道。 Golang标准库对IO的抽象非常精巧,各个组件可以随意组合,可以做为接口设计的典范 io包 io包中提供I/O原始操作的一系列接口。它主要包装了一些已有的实现,如os包中的那些,并将这些抽象成为实用性的功能和一些其他相关的接口 由于这些接口...

Golang:File文件操作

File文件操作 FileInfo接口 FileInfo接口中定义了File信息相关的方法。 1 2 3 4 5 6 7 8 type FileInfo interface {   Name() string  // base name of the file 文件名.扩展名 aa.txt   Size() int64  // 文件大小, 字节数 12540   ...

Golang:time包

在标准库中,为我们提供了time包,里面都是关于日期时间的操作,都比较简单。 1. 获取时间对象 获取当前时间 1 2 3 4 func Now() Time // Now returns the current local time t := time.Now() 获取指定时间 1 2 3 4 5 6 7 8 9 10 11 12 13 func Date(year int, mon...

Golang:流程语句

程序的流程结构 一共有三种:顺序结构,选择结构,循环结构 顺序结构:从上向下,逐行执行 选择结构:条件满足,某些代码才会执行。0-1次 分支语句:if, switch, select 循环结构:条件满足,某些代码会被反复的执行多次。0-N次 循环语句:for if分支语句 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 if 布...