goroutine

我们从调度上声明线程与goroutine的区别 为什么标题为goroutine,而不是协程,线程,其他语言之类,因为对于多线程编程来说,golang在此处是天生的高级语言 cpu已经通过分配时间,自带调度器实现切换时间片帮我们解决了多程序(任务)执行问题,在此基础上推演出更小单位多线程: 多线程的执行依赖os(操作系统)的调度分配,操作系统促使硬件调度时钟,隔个一段时间发送一个信号到cpu中,cpu结束当前执行线程的函数(程序)并将执行信息从寄存器保存到内存中,再查看线程清单中接下来要继续执行的...阅读全文

简书 2020-09-15 11:32:41 万大宝_我兜里有糖

2020年9月份go web iris学习笔记1

系统win10, go版本1.15 安装go 下载地址:https://studygolang.com/dl/golang/go1.15.2.windows-amd64.msi 双击安装,默认安装目录C:\Go 配置系统环境变量 GO111MODULE = on (用于开启go的mod模式) GOPROXY = https://goproxy.cn (就近下载,否则去github得下到明年) GOPATH = D:\gowork (插件的安装目录) GOROOT = C:\Go (根据go的实际...阅读全文

简书 2020-09-15 11:32:41 呱啦哒

无栈协程 | Rust学习笔记

作者:谢敬伟,江湖人称“刀哥”,20年IT老兵,数据通信网络专家,电信网络架构师,目前任Netwarps开发总监。刀哥在操作系统、网络编程、高并发、高吞吐、高可用性等领域有多年的实践经验,并对网络及编程等方面的新技术有浓厚的兴趣。Rust作为一门新兴语言,主打系统编程。提供了多种编写代码的模式。2019年底正式推出了 async/await语法,标志着Rust也进入了协程时代。下面让我们来看一看。Rust协程和Go协程究竟有什么不同。有栈协程 vs. 无栈协程协程的需求来自于C10K问题,这里不...阅读全文

Segmentfault 2020-09-19 21:32:31 Netwarps

切片真的是引用类型嘛

来自公众号:新世界杂货铺注: 以下仅代表个人看法, 如果和大部分文章内容不一致,还请酌情参考灵魂三问Q1. 引用和指针的区别是什么?答: 其实他们的区别我也说不清楚, 但是他们都有一个共同点, 那就是他们能够指向真实的值, 操作他们会改变真实的值Q2. 在go中有指针了我们为什么还要有提出引用的概念?答:很明显这个问题我答不上来, 说实话我也只是看很多文章里面这么说, 我自己没有去认真研究过Q3. go中真的有引用这个概念嘛?答: 这个问题或许可以解答一下Q2. 但是我也不敢作出肯定的答复. 我...阅读全文

Segmentfault 2020-09-18 14:32:33 新世界杂货铺

Go 每日一库之 commonregex

简介有时,我们会遇到一些需要使用字符串的匹配和查找的任务。并且我们知道这种情况下,使用正则表达式是最简洁和优雅的。为了完成某个任务特地去系统地学习正则表达式费时费力,而且一段时间不用又很容易遗忘。下次遇到问题还要再重复这个过程。commonregex库来了,它内置很多常用的正则表达式,开箱即用。当然,我并不是说没必要去学习正则表达式,熟练掌握正则表达式需要时间和练习,对于时长和文本处理打交道的开发人员,正则表达式决定是提升工作效率的一把利器。快速使用本文代码使用 Go Modules。创建目录并...阅读全文

Segmentfault 2020-09-19 19:32:41 darjun

再见,摩奇卡卡

最终的离职时间确定了,长达数月的半离职状态即将结束,我即将离开工作了七年半的摩奇卡卡,踏上未知的旅程。 此时此刻,心中充满了对过去的不舍,同时也充满了对未来的忐忑和美好憧憬。 2013年4月1日,我正式入职摩奇卡卡。开启了我新的职业生涯。还是梳理一下我在公司的职业发展路径吧: 2013年:开发了手游《呆兵萌将》。这款游戏并没有什么特别,也未取得好的市场表现。但是却从这个项目中走出众多公司未来的核心骨干:技术总监、运营总监、数值负责人、制作人、多个主程。 (使用技术:C#, Mysql) 2014...阅读全文

简书 2020-09-14 20:32:38 筑梦之队

「linux」Socket缓存是如何影响TCP性能的?

一直以来我们都知道socket的缓存会对tcp性能产生影响,也有无数文章告诉我们应该调大socke缓存。但是究竟调多大?什么时候调?有哪些手段调?具体影响究竟如何?这些问题似乎也没有人真正说明白。下面我们就构建起一个简单的实验环境,在两台虚拟机之间探究一下Socket缓存究竟如何影响TCP的性能?对分析过程不感兴趣的可以直接看最后的结论。影响Socket缓存的参数首先,我们要先来列出Linux中可以影响Socket缓存的调整参数。在proc目录下,它们的路径和对应说明为:/proc/sys/ne...阅读全文

简书 2020-09-14 18:32:48 linux大本营

Linux 服务器开发学习路线总结(配图 c/c++ )后台开发、Golang后台开发、后端技术栈

本文总结了目前互联网行业Linux c/c++ 后端岗位开发工程师、服务器开发架构师以及Golang开发工程师技术栈知识点、大家可以看看还有没有需要补充的。Linux后台开发工程师专栏一、算法与设计专题 二、后台组件编程专题 三、代码化过程专题 视频文档资料获取+1035101242(VX同号)系统学习视频资料点击:https://ke.qq.com/course/417774?flowToken=1018091四、网络服务专题 五、开源框架专题 六、性能测试专题 七、Linux系统专题 Lin...阅读全文

简书 2020-09-14 18:32:48 Linux后台服务器开发

关于golang当中对select的理解

Select 语句和 Swithc 语句的句式十分相似,但是 Select 中的 Case 必须是一个通信操作(一个 Channel 操作)。其执行逻辑是:哪一个 Case 后面的 Channel 操作可以被成功执行,则执行该 Case 下的代码块。如果同时多个 Case 可被成功执行,则随机选择其中一个。如果所有 Case 均不可被成功执行,则执行 default 下的代码块。如果没有 default 则会阻塞并返回死锁错误。监听 IO 操作,当 IO 操作发生时,触发相应的动作这个说法是对的...阅读全文

简书 2020-09-14 18:32:39 MO_ON_e503

网络爬虫如何添加爬虫代理

现在的互联网时代,大数据的进步,网络爬虫也越来越多的网络爬虫用户。网络爬虫用户在做业务是,访问目标网站时会触发目标网站的反爬机制。由于网络爬虫用户的请求量大和采集速度快,就会导致出现这种情况,如何解决这种情况,就需要用到常见的爬虫代理IP了。那网络爬虫如何寻找这些有效的爬虫代理IP呢?1、浏览器上搜索免费代理IP2、通过自己的爬虫程序去爬取IP3、通过浏览器或者代码验证IP的有效性4、保存文本格式网上爬虫取到的免费代理加到自己的IP池去使用,有些代理虽然能用。但是对于公司业务或者是对代理IP的质...阅读全文

Go语言中文网 2020-09-14 17:10:50 laical

gRpc框架

RPC 框架原理 RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者,而不需要关心底层通信细节和调用过程。 image 业界主流的 RPC 框架整体上分为三类: 支持多语言的 RPC 框架,比较成熟的有 Google 的 gRPC、facebook的Apache、Thrift; 只支持特定语言的 RPC 框架,例如新浪微博的 Mot...阅读全文

简书 2020-09-14 15:32:40 zhaohaiyu

Go-carbon 1.1.1版本发布了,完善对主流ORM的支持,新增公共方法

carbon 是一个轻量级、语义化、对IDE友好的日期时间处理库,是PHP Carbon库的Golang实现版本,初衷是为了摆脱Golang反人类的2006-01-02 15:04:05格式化时间设计,支持链式调用和gorm、xrom等主流orm如果您觉得不错,请给个star吧github:github.com/golang-module/carbongitee:gitee.com/go-package/carbon安装go get -u gitee.com/go-package/carbon初...阅读全文

Segmentfault 2020-09-18 11:32:32 够过瘾

性能提升48倍! python redis批量写入大量数据优化过程

1.最原始的版本,直接使用hset,效率很低 写30w条完耗时365秒,这样有两个问题: 相同的key,写入多条应该用hmset代替hset 另外可以用pipeline,避免频繁跟redis服务端交互,大量减少网络io image.png image.png image.png def get_conn(): r = redis.Redis(host='localhost', port=6379, decode_responses=True) return r def test_set_redi...阅读全文

简书 2020-09-14 12:32:43 梨花菜

Go语言 | 并发设计中的同步锁与waitgroup用法

今天是golang专题的第16篇文章,我们一起来聊聊golang当中的并发相关的一些使用。虽然关于goroutine以及channel我们都已经介绍完了,但是关于并发的机制仍然没有介绍结束。只有goroutine以及channel有时候还是不足以完成我们的问题,比如多个goroutine同时访问一个变量的时候,我们怎么保证这些goroutine之间不会互相冲突或者是影响呢?这可能就需要我们对资源进行加锁或者是采取其他的操作了。同步锁golang当中提供了两种常用的锁,一种是sync.Mutex另...阅读全文

Segmentfault 2020-09-16 13:32:35 只爱宅

ARTS 第18周| LeetCode 384 打乱数组 | 应用开发12要素

ARTSARTS 是陈浩(网名左耳朵耗子)在极客时间专栏里发起的一个活动,目的是通过分享的方式来坚持学习。每人每周写一个 ARTS:Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。本周内容这周的 ARTS 你将看到:一道不太适合做面试题的面试题.应用服务开发的 12要素12-Factor.(疑问)做 k8s 相关的开发到底是做什么?Algorithm本周的算法题, 是 LeetCode 384 Shuf...阅读全文

Segmentfault 2020-09-18 09:32:32 澎湃哥