240 发简信
IP属地:广东
  • 120
    GitHub 上 7 个 yyds 算法项目

    算法和数据结构是计算机学习的基石,无论你学习计算机的任何方向,没有扎实的算法和数据结构,肯定学习起来就捉襟见肘了。 LeetCode 是一个包含许多算法问题的网站。 其中大部...

  • APP开发实战10-APP数据同步方案

    3.3数据同步方案 3.3.1文件的同步 通常图片都需要在APP端做缓存处理,所以从服务器端返回图片链接的时候,一定要同时返回图片最新修改的时间戳。APP根据本地存储图片的时...

  • [翻译] ProtoBuf 官方文档(一)- 开发者指南

    翻译查阅外网资料过程中遇到的比较优秀的文章和资料,一是作为技术参考以便日后查阅,二是训练英文能力。此文翻译自 Protocol Buffers 官方文档 Developer ...

  • 120
    ElasticSearch从入门到精通,详解

    1.ElasticSearch的简介 Elasticsearch的特点 1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上,服...

  • @ac973b5a5d45 已经纠正了,在此对被我这篇文章误导的初学gopher深感抱歉,请后来阅读的初学者学习时多敲代码验证,如有发现错误烦请联系作者纠正。

    14 Go并发编程(一):协程 —— Go并发的基本运行单元

    Go协程 1.什么是goroutine? Go在语言级别原生支持并发操作,这在现代众多基于线程并发的其他语言来看是比较鹤立鸡群的。在Go中最基本的并发任务单元是一种称为gor...

  • @ac973b5a5d45 感谢纠正,这个特性应该是主死从随,只作用于主协程退出时所有协程全部退出。所有开辟的子协程全部是并行的并无父子关系。这个错误源于五年前我学习go时理解的不透彻,当时以为子协程的生命周期会随调用者的结束而结束,随着理解context后发现调用栈需要上下文控制才不会让子协程失去控制。这篇文章没有纠正,代码在main函数调用所以没发现。晚点我会纠正过来。非常感谢您的阅读及纠正!

    14 Go并发编程(一):协程 —— Go并发的基本运行单元

    Go协程 1.什么是goroutine? Go在语言级别原生支持并发操作,这在现代众多基于线程并发的其他语言来看是比较鹤立鸡群的。在Go中最基本的并发任务单元是一种称为gor...

  • Go 并发编程:Goroutine常见应用范式

    一、多独立协程并发——worker分工模式 并发协程独立运行且互不通信,主协程等待处理独立子协程的结果 并发编程有一种常见方式就是许多工作子协程都是独立的,互不干扰,但他们又...

  • Go 并发编程:通道应用范式之管道模式

    管道模式 一、类Unix串行管道:使用通道实现串行管道功能 我们在使用类Unix系统时常常用到管道命令,如"ls |grep 'path/to' ",它可以让数据在多个命令操...

  • Go 并发编程:通道常见应用范式

    通道经典应用 一、闭包实现通道访问限制 在Go的并发编程中,创建通道和开辟协程是非常方便且容易的,正因如此,有可能会导致开发者滥用。如果在团队开发中没有良好的协商和规范,更可...

  • Go 并发编程:利用通道创建并发安全的数据结构

    利用通道创建并发安全的映射或切片 创建一个并发安全的映射或切片,不需要使用锁或者其他底层原语 我们之前讲过值类型的数据在函数参数传递时是拷贝传递,所以没有并发安全问题,我们并...

  • Go 并发编程:错误处理及错误传递

    一、协程错误管理 我们在基础系列讲过Go程序开发中的错误处理规范,展示了几种函数执行中的错误返回问题,而在Go并发编程中,我们常常会忽略协程里面的错误处理问题,有时候,我们花...

  • Go 并发编程:防止Goroutine泄露

    防止Goroutine泄露 Goroutine开启后一般会一直执行到它终止,也有遇到不可恢复的错误(如协程内部错误或父协程退出)时被迫终止。如果没有一定的手段,父协程是没法控...

  • Go并发编程小贴士

    一、死锁陷阱 关于Go的并发编程,你会遇到哪些陷阱: 主协程退出时,所有子协程都一并退出; 所有子协程都已经完成工作,但主协程和一些工作协程还存活,这是由于主协程无法获得工作...

  • 常见算法思想6:回溯法

    回溯法 回溯法也叫试探法,试探的处事方式比较委婉,它先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一进行枚举和检验。当发现当前候选解不可能是正确的解时,就选择...

  • 常见算法思想8:动态规划法

    动态规划问题的分类 求最大最小值从左上角走到右下角路径的最大数字和最长上升子序列长度 计数有多少种方式...有多少种方法选出k个数使得和是sum 求存在性取石子游戏,先手是否...

  • 常见算法思想7:贪心法

    贪心算法的思想 即对于目标T,对于达成它的每一局部都选择最优选项,直到满足或最终近似满足为止,最终结果或许不是全局最优解,但应该是近似最优解,因为它足够简单。 每一步都采取局...

  • 常见算法思想5:分治法

    分治法 分治算法采取了各个击破的方法,将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。我们只要求出子问题的解,就可得到原问题的解。 在编...

  • 120
    常见算法思想4:迭代法

    迭代法 迭代法也被称为辗转法,是一种不断用变量的旧值递推新值的过程,在解决问题时总是重复利用一种方法。与迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代法又...