Standing on the Shoulder of Giants
Home
Archives
Links icon
LinkedIn Twitter
About
  • [译]Concurrency Trap #2: Incomplete Work

    Sep 2, 2021 · 3 min read · golang goroutine Concurrency Trap  ·
    分享到:
    [译]Concurrency Trap #2: Incomplete Work

    原文链接:Concurrency Trap #2: Incomplete Work (ardanlabs.com) 简介 在我的上一篇博文[译]Goroutine Leaks - The Forgotten Sender中,我提到了并发是一个非常有用的工具,但是并发往往伴随着特定的陷阱,而这些不会在同步编程中出现。本文会继续这个主题,在本文中我将介绍一个名为未完成的工作的陷阱。未完成的工作发生于在仍然有未完成的Goroutine(非main goroutine)存在的时候程序终止退出了。发生这种情况时,Goroutine的本质使得它会被强制退出,这可能是一个严重的问题。 未完成的工作 为了说明什么是未完成的工作,请观察下面的例子。 …

    阅读更多
  • [译]Go Concurrency Best Practice

    Sep 2, 2021 · 5 min read · golang goroutine Concurrency  ·
    分享到:
    [译]Go Concurrency Best Practice

    Dave Cheney 2019年在QCon上分享的一些Go编程的原则很有参考价值。我摘录了关于并发的部分,这部分是关于Go编发编程的一些原则和思想。 原文链接:Practical Go: Real world advice for writing maintainable Go programs (cheney.net) 通常选择Go来做项目,往往是因为它的并发特性。Go团队已经不遗余力的让Go在并发方面即能节省资源又能满足性能要求。然而,使用Go的并发特性写出低性能或者不稳定的代码是完全可能的。在最后我想留给你们一些我关于如何避免使用Go并发特定带来的一些隐患的建议。 支持并发特性的语句channel,select和go在Go特 …

    阅读更多
  • [译]Goroutine Leaks - The Forgotten Sender

    Sep 2, 2021 · 3 min read · golang goroutine Concurrency Trap  ·
    分享到:
    [译]Goroutine Leaks - The Forgotten Sender

    原文链接:Goroutine Leaks - The Forgotten Sender (ardanlabs.com) 简介 并发编程可以让程序员以多个执行路径来解决问题,而且通常是试图提高程序性能。并发并不意味着这些执行路径是以并行的方式执行,而是说这些执行路径以无序异步的方式执行而不是同步顺序执行。历史上这种编程模型是通过标准款或者第三方库来实现的。 Go语言中,并发特性是通过语言内置的Goroutine和channel来实现,这样就减少了对库的依赖。这容易给人一种错觉,觉得使用Go来编写并发程序会很简单。你得非常小心,因为如果你没有正确的使用Go的并发特性,往往会引入特定的边界效应或者调入陷阱。一不小心,这些陷阱就会给你程序带 …

    阅读更多
  • 使用Github Pages+Hugo搭建个人博客

    Jul 21, 2021 · 1 min read · Hugo Github Pages Github Action  ·
    分享到:
    使用Github Pages+Hugo搭建个人博客

    本文通过一些列的步骤,来介绍一下如何通过Github Pages和Hugo来搭建一个个人博客。 说明 首先需要你要有一个github账号。我的一个思路是:把markdown源文件放在一个私有的repo下,然后通过hugo build出来的静态html放在另一个公开的repo下,这个过程可以通过Github Action来触发。基于此,我的博客源文件是在私有repo jonlimx/blogs-src里,博客本身是在公开repo jonlimx/blogs下,如下图所示: 所以,如果你想跟我一样,你需要事先建好一个私有repo和一个公开repo。下文中提到的jonlimx/blogs-src就是特指我的私 …

    阅读更多
    • ««
    • «
    • 1
    • 2
    • 3
    • »
    • »»
Jonathan Lin photo

Jonathan Lin

大龄编程爱好者,摄影爱好者。喜欢徒步喜欢户外,喜欢有事没事拍拍孩子,记录生活记录孩子成长
阅读更多

最新文章

  • MQTT控制报文
  • MQTT QoS和协议流程
  • 保留消息和最后遗嘱
  • MQTT杂记
  • UTF-8编码知识点整理
  • Mac下安装和配置Mosquitto
  • C Primer Plus读书笔记(二)
  • C Primer Plus读书笔记(三)

分类

NOTES 18 TRANSLATION 5 HOW-TO 1

标签

C 6 C-PRIMER-PLUS 6 GOLANG 5 MONGODB 5 MQTT 5 GOROUTINE 3 CONCURRENCY-TRAP 2 PROTOBUF 2 CONCURRENCY 1 ENCODING 1 GITHUB-ACTION 1 GITHUB-PAGES 1 HUGO 1 LWT 1
所有标签
C6 C-PRIMER-PLUS6 CONCURRENCY1 CONCURRENCY-TRAP2 ENCODING1 GITHUB-ACTION1 GITHUB-PAGES1 GOLANG5 GOROUTINE3 HUGO1 LWT1 MONGODB5 MQTT5 PROTOBUF2 QOS1 REGEX1 RETAINED1 UNICODE1 UTF1
[A~Z][0~9]
Standing on the Shoulder of Giants Copyright © 2023 Jonathan Lin. All rights reserved.