练习 8.3: 在netcat3例子中,conn虽然是一个interface类型的值,但是其底层真实类型是*net.TCPConn,代表一个TCP连接。一个TCP连接有读和写两个部分,可以使用CloseRead和CloseWrite方法分别关闭它们。修改netcat3的主goroutine代码,只关 ...
分类:
编程语言 时间:
2018-04-29 13:28:21
阅读次数:
175
如何实现子goroutine与主线程的同步 第一种方式:time.sleep(),这种方式很太死板,就不演示了。 第二种方式:使用channel机制,每个goroutine传一个channel进去然后往里写数据,在再主线程中读取这些channel,直到全部读到数据了子goroutine也就全部运行完 ...
分类:
其他好文 时间:
2018-04-27 21:16:57
阅读次数:
160
cond的主要作用就是获取锁之后,wait()方法会等待一个通知,来进行下一步锁释放等操作,以此控制锁合适释放,释放频率,适用于在并发环境下goroutine的等待和通知。针对Golang1.9的sync.Cond,与Golang1.10一样。源代码位置:sync\cond.go。结构体typeCondstruct{noCopynoCopy//noCopy可以嵌入到结构中,在第一次使用后不可复制,
分类:
其他好文 时间:
2018-04-22 15:12:54
阅读次数:
272
Go语言圣经-Panic异常1.当panic异常发生时,程序会中断运行,并立即执行在该goroutine中被延迟的函数(defer 机制)2.不是所有的panic异常都来自运行时,直接调用内置的panic函数也会引发panic异常;panic函数接受任何值作为参数。3.由于panic会引起程序的崩溃 ...
分类:
编程语言 时间:
2018-04-18 23:43:01
阅读次数:
227
o 语言有一个很重要的特性就是 goroutine, 我们可以使用 goroutine 结合 channel 来开发并发程序。 并发程序指的是可以同时运行多个任务的程序,这里的同时运行并不一定指的是同一时刻执行,在单核CPU的机器下,在同一时刻只可能有一个任务在执行,但是由于CPU的速度很快,在不断 ...
分类:
编程语言 时间:
2018-03-25 18:08:40
阅读次数:
134
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。 Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。 以下是我入门的学习笔记。 Go语言的goroutines、信道和死锁 goroutine Go语言 ...
分类:
编程语言 时间:
2018-03-19 16:57:50
阅读次数:
212
buffered channels 带有缓冲区的channel 只有在缓冲区满之后 channel才会阻塞 WaitGroup 如果有多个 goroutine在后台执行 那么需要在主线程中 多次等待 可以有一个简单的方法 就是 通过WaitGroup 可以控制 Goroutines 直到它们都执行完 ...
分类:
其他好文 时间:
2018-03-12 13:37:43
阅读次数:
140
goroutine(协程) 大家都知道java中的线程Thread,golang没有提供Thread的功能,但是提供了更轻量级的goroutine(协程),协程比线程更轻,创办一个协程很简单,只需要go关键字加上要运行的函数,就可以实现了。看个简单的例子: 运行结果如下: Channels(信道) ...
分类:
其他好文 时间:
2018-03-03 18:12:18
阅读次数:
171
特点:a.自动垃圾回收b.丰富的内置类型c.函数多返回值d.错误处理e.匿名函数和闭包f.类型和接口g.goroutine并发编程h.反射i.CGO调用c函数go语言从main包中的main函数开始执行,Go语言的main()函数不能带参数,也不能定义返回值。命令行传入的参数在os.Args变量中保存。如果需要支持命令行开关,可使用flag包。在包声明之后,是一系列的import语句,用于导入该程
分类:
其他好文 时间:
2018-03-02 18:42:28
阅读次数:
208
反射:可以在运行时动态获取变量的相关信息 导入 reflect 包 reflect 包下主要是Type和Value 两个struct, Type封装了“类型”的属性,定义相关的东西找他; Value主要封装了“值”的属性,与值相关的东西找他没错。此外,他是线程安全的(或者叫goroutine安全) ...
分类:
其他好文 时间:
2018-03-01 20:16:01
阅读次数:
202