上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 53 下一页
摘要: 并发打印 使用无缓冲通道往里面装入数据时,装入方将被阻塞,直到另外通道在另外一个 goroutine 中被取出。同样,如果通道中没有放入任何数据,接收方试图从通道中获取数据时,同样被阻塞。发送和接收的操作是同步完成的。 package main import "fmt" func printer(c 阅读全文
posted @ 2022-05-11 11:47 左扬 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 在多个 goroutine 间通信的管道——通道(Channel) 单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存进行数据交换,但是共享内存在不同的 goroutine 中容易发生竟态问题。为了保证数据交换的正确性,必须使用互斥量对内存进 阅读全文
posted @ 2022-05-11 00:10 左扬 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 调整并发的运行性能(GOMAXPROCS) 在 Go 运行时(runtime)实现了一个小型的任务调度器。这套调度器的工作原理类似操作系统调度线程,Go 程序调度器可以高效地将 CPU 资源分配给每一个任务。传统逻辑中,开发者需要维护 线程池中线程 与 CPU 核心数量的对应关系。同样的,Go 中也 阅读全文
posted @ 2022-05-11 00:03 左扬 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 使用匿名函数创建 goroutine go 关键字后也可以为匿名函数或闭包启动 goroutine。 一、使用匿名函数创建 goroutine 的方式 使用匿名函数或闭包创建 goroutine 时,除了将函数定义部分写在 go 的后面之外,还需要加上匿名函数的调用参数,格式如下: go runc( 阅读全文
posted @ 2022-05-10 23:53 左扬 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 轻量级线程(goroutine)——根据需要随时创建的“线程” 一、什么是 goroutine? 在编写 Socket 网络程序时,需要提前准备一个线程池为每一个 Socket 的收发包分配一个线程。开发人员需要为 线程数量 和 CPU 间建立一个对应关系,以保证每个任务能及时地分配到 CPU 上进 阅读全文
posted @ 2022-05-10 23:24 左扬 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 并发和并行 并发和并行区别。 并发(concurrency):把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。 并行(parallelism):把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。 Go 语言通过编译器运行时(runtime),在语言上 阅读全文
posted @ 2022-05-10 23:12 左扬 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 将 "秒" 解析为时间单位 在本例中,使用一个数值表示时间中的 "秒" 值,然后使用 resolveTime() 函数将传入的秒数转换为天、小时和分钟等时间单位。 package main import ( "fmt" ) const ( //定义每分钟的秒数 SecondsPerMinute = 阅读全文
posted @ 2022-05-10 12:42 左扬 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 匿名函数——没有函数名字的函数 Go 语言支持匿名函数,即在需要使用函数时,再定义函数,匿名函数没有函数名,只有函数体,函数可以被作为一种类型赋值给函数类型的变量,匿名函数也往往以变量方式被传递。 匿名函数经常被用于实现回调函数、闭包等。 1、定义一个匿名函数(很常见) 匿名函数的定义格式如下: f 阅读全文
posted @ 2022-02-17 17:23 左扬 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 函数(function)——把函数作为值保存到变量中 在 Go 语言中,函数也是一种类型,可以和其他类型一样被保存在变量中。下面的代码定义了一个函数变量 f,并将一个函数名 fire() 赋给函数变量 f,这样调用函数变量 f 时,实际调用的就是 fire() 函数,代码如下: package ma 阅读全文
posted @ 2022-02-15 17:07 左扬 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 函数(function)—— 声明函数+函数参数传递效果示例 函数是组织好的,可重复使用的,用来实现单一或相关功能的代码段,其可以提高应用的模块性和代码的重复利用率。 Go 语言支持普通函数、函数匿名和闭包,从设计上对函数进行了优化和改进,让函数使用起来更加方便。 Go 语言的函数属于 “一等公民” 阅读全文
posted @ 2022-02-15 16:59 左扬 阅读(863) 评论(0) 推荐(0) 编辑
上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 53 下一页
levels of contents