
golang并发编程
文章平均质量分 81
并发编程相关知识
怪我冷i
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
golang学习笔记——channel使用场景
在Golang中,Channel是一种非常重要的并发编程原语,它提供了一种安全、高效地在Goroutine之间进行通信的机制。原创 2024-08-31 01:00:00 · 763 阅读 · 0 评论 -
golang并发编程—— 并发模式
WatiGroup是sync包中的一个struct类型,用来收集需要等待执行完成的goroutine。// WaitGroup用于等待一组线程的结束。// 父线程调用Add方法来设定应等待的线程的数量。// 每个被等待的线程在结束时应调用Done方法。同时,主线程里可以调用Wait方法阻塞至所有线程结束。// 包含隐藏或非导出字段// Add方法向内部计数加上delta,delta可以是负数;// 如果内部计数器变为0,Wait方法阻塞等待的所有线程都会释放,如果计数器小于0,方法panic。原创 2024-08-28 23:00:00 · 1376 阅读 · 0 评论 -
golang学习笔记——将 channel 用作通信机制
让我们看看它们的工作原理,以及如何开始使用它们来编写并发 Go 程序。如果没有另一个 goroutine 从 channel 接收数据,则整个程序可能会永久处于被阻止状态。有时,在使用多个 channel 时,需要等待事件发生。例如,当程序正在处理的数据中出现异常时,可以包含一些逻辑来取消操作。函数创建 channel 时,会创建一个无缓冲 channel,这是默认行为。语句,但它适用于 channel。它会阻止程序的执行,直到它收到要处理的事件。语句的一个重要方面是,它在处理事件后完成执行。原创 2023-11-23 12:00:00 · 1069 阅读 · 0 评论 -
golang并发编程—— Select 语句
在 Go 语言中,select语句是一种控制结构,允许一个 Goroutine 同时等待多个通道操作。select语句会阻塞,直到其中的一个case可以继续执行,然后执行该case中的语句。select语句是处理并发任务时非常有用的工具,特别是需要处理多个通道的通信时。原创 2024-08-30 00:30:00 · 532 阅读 · 0 评论 -
golang并发编程——Channel 通道
在Go语言中,(Channel)是一种数据类型,用于在多个 goroutine 之间进行通信和同步。通道提供了一种安全、高效的方式,用于传递数据和控制信息。转载 2024-08-29 01:00:00 · 312 阅读 · 0 评论 -
golang学习笔记——TCP端口扫描器
FileConn返回与打开的文件f相对应的网络连接的副本。完成后关闭f是调用者的责任。关闭c不影响f,关闭f不影响c。测试中发现,把500个goroutine改为20000个,速度是变快了,但结果并不准确。Since返回自t以来经过的时间。多个goroutine可以同时调用一个Conn上的方法。DialTimeout的作用类似于Dial,但需要超时。对带缓存的channel不理解的可以看一下。Conn是一种通用的面向流的网络连接。(代码中创建了500个),利用。拨号连接到命名网络上的地址。原创 2023-12-08 00:56:59 · 1473 阅读 · 0 评论 -
golang并发编程——概述
Go 协程(Goroutine)是 Go 语言提供的一种轻量级线程,由 Go 运行时来管理。是与其他函数同时运行的函数,它们是并发执行代码的基础。在函数调用前加上 go 关键字,这次调用就会在一个新的 goroutine 中并发执行。当被调用的函数返回时,这个 goroutine 也自动结束。需要注意的是,如果这个函数有返回值,那么这个返回值会被丢弃。Go 协程(Goroutine)之间通过通道(channel)进行通信,简单的说就是多个协程之间通信的管道。通道可以防止多个协程访问共享内存时发生资源争抢的问原创 2024-08-28 14:00:00 · 1003 阅读 · 0 评论 -
golang并发编程——Goroutine 协程
进程:资源隔离好,开销大,适用于独立运行的任务。线程:资源共享,开销较小,适用于需要并行处理的任务。协程:更轻量级,用户态调度,适用于大量并发的 I/O 密集型任务。各自的选择主要取决于具体的应用场景和性能需求。协程在现代编程中越来越受欢迎,尤其是在需要高并发和高效 I/O 操作的场景中。转载 2024-08-31 01:00:00 · 283 阅读 · 0 评论