Go语言中文网 为您找到相关结果 226

Go 系列教程 —— 20. 并发入门

欢迎来到我们 [Golang 系列教程](https://studygolang.com/subject/2)的第 20 篇。 **Go 是并发式语言,而不是并行式语言**。在讨论 Go 如何处理并发之前,我们必须理解何为并发,以及并发与并行的区别。 ## 并发是什么? 并发是指立即处理多个任务的能力。一个例子就能很好地说明这一点。 我们可以想象一个人正在跑步。假如在他晨跑时,鞋带突然松了。于是他停下来,系一下鞋带,接下来继续跑。这个例子就是典型的并发。这个人能够一下搞定跑步和系鞋带两件事,即立即处理多个任务。 ## 并行是什么?并行和并发有何区别? 并行是指同时处理多个任务。这听起来和并发差不多,但其实完全不同。 我们同样用这个跑步的例子来帮助理解。假如这个人在慢跑时,还在用他的 iPod...阅读全文

博文 2018-02-03 12:25:58 heyulong

重量级爬虫软件Pholcus

# pholcus [![GoDoc](https://godoc.org/github.com/tsuna/gohbase?status.png)](https://godoc.org/github.com/henrylee2cn/pholcus) [![GitHub release](https://img.shields.io/github/release/henrylee2cn/pholcus.svg)](https://github.com/henrylee2cn/pholcus/releases) Pholcus(幽灵蛛)是一款纯Go语言编写的高并发、分布式、重量级爬虫软件,支持单机、服务端、客户端三种运行模式,拥有Web、GUI、命令行三种操作界面;规则简单灵活、批...阅读全文

Go 的快速 HTTP 包fasthttp

fasthttp 是 Go 的快速 HTTP 实现,当前在 1M 并发的生产环境使用非常成功,可以从单个服务器进行 100K qps 的持续连接。 HTTP 服务器性能与 net/http 比较 总而言之,fasthttp 比 net/http 快 10 倍 GOMAXPROCS=1 net/http: $ GOMAXPROCS=1 go test -bench=NetHTTPServerGet -benchmem PASS BenchmarkNetHTTPServerGet1ReqPerConn 100000 21211 ns/op 2407 B/op 30 allocs/op BenchmarkNe...阅读全文

测试golang中的多核多线程

"并发 (concurrency)" 和 "并行 ( parallelism)" 是不同的。在单个 CPU 核上,线程通过时间片或者让出控制权来实现任务切换,达到 "同时" 运⾏多个任务的⺫的,这就是所谓的并发。但实际上任何时刻都只有一个任务被执行,其他任务通过某种算法来排队。多核 CPU 可以让同⼀进程内的 "多个线程" 做到真正意义上的同时运,它们之间不需要排队 (依然会发生排队,因为线程数量可能超出 CPU 核数量,还有其他的进程等等。这里说的是一个理想状况),这才是并行。除了多核,并行计算还可能是多台机器上部署运行。 package main import ( "fmt" "runtime" ) func test(c chan bool, n int) { x := 0 for i...阅读全文

博文 2015-12-24 05:00:02 zhjih123

Go计算运行的时间

函数time.Since() 计算golang运行的时间是非常有用的性能衡量指标,特别是在并发基准测试中。下面将介绍如何简单地使用Go语言来计算程序运行的时间。 简单地使用Golang的time.Since()函数即可。下面有一个完整例子展示这个用法。 package main import ( "fmt" "time" ) func StartCac() { t1 := time.Now() // get current time //logic handlers for i := 0; i < 1000; i++ { fmt.Print("*") } elapsed := time.Since(t1) fmt.Println("App elapsed: ", elapsed) } fun...阅读全文

博文 2016-05-20 11:00:00 GreatElite

百度云虚拟主机做网站有哪些优势?

众所周知百度是国内最大的搜索引擎、最大的中文网站。百度推出的云服务器、云虚拟主机、域名服务等质量可靠,对于客户的网站来说,能够保证访问的速度、稳定和安全。 百度云虚拟主机是最新的的容器技术、热迁移技术和百度生态能力提供的新一代网站主机服务,能够保证高性能、高可靠性、高安全性和高易用性等,即使是零基础的站长也可以轻松搞定网站的部署、发布、运维、推广,这无论是对企业还是个人网站来说都有非常大的作用。 ![虚拟主机.jpg](https://static.studygolang.com/180420/59974fa5a2ba4eec783545b7a6caebd8.jpg) 那么百度云虚拟主机的优势又有哪些? 高稳定 基于百度云的核心技术,故障服务方面可秒级热迁移...阅读全文

高性能代理服务器Proxy-Go

Proxy 是 golang 实现的高性能 http,https,websocket,tcp 代理服务器,同时支持内网穿透。 ## Features - 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理. - 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征. - 智能HTTP代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理. - 域名黑白名单,更加自由的控制网站的访问方式。 - 跨平台性,无论你是widows,linux,还是mac,甚至是树莓派...阅读全文

产品级 Go 语言微服务框架Go Chassis

Go Chassis 是华为云 CSE 开源的一个用 Go 语言编写的微服务快速开发框架。借助 CSE Go Chassis 进行微服务开发可最大化地降低开发门槛,提升产品上线速度,同时可以获得微服务运行时高可靠性保证、运行时动态治理等一系列开箱即用的能力。 作为业界首款商用级别的Go语言微服务框架,Go Chassis 已具备支持企业级应用的核心特性: **可定制的通信协议**:除了现有支持的 HTTP/ Highway RPC 协议外,用户可自行扩展协议。支持 Go Chassis 开发的应用与使用 Java Chassis 开发的应用互相通信,企业在进行微服务架构选择有更大的自由。 **使微服务更加健壮**:完善的服务治理(负载均衡、限流、熔断、降级等等),保障 Go 微...阅读全文

【互联网早报】2017.12.06

## 国内新闻 1.威马汽车获百度领投新一轮融资,累计融资金额已超120亿 http://www.tmtpost.com/2953163.html 2.中国电信飞机上网技术曝光:将采用高通量通信卫星 http://www.cnbeta.com/articles/tech/676767.htm 3.央行:第三季度移动支付业务金额增近四成 网联平台试运行平稳 https://www.leiphone.com/news/201712/rDsY4yemksmgIpBv.html 4.美法院将重审阿里IPO欺诈案 被指隐瞒假货监管信息 http://tech.163.com/17/1206/08/D4V7R6JT00097U7...阅读全文

go实现高性能直播服务

livego go 实现直播服务 服务器部署 chmod 755 server.sh ./server.sh &(依赖go环境,有些情况需要用vim 打开 set ff=unix 然后:wq) 或者直接执行 ./LiveGoServer (不依赖go环境) 本地部署 直接执行 LiveGoServer.exe use 采用vue+webpack实现ui所有在config里日志在logs里http://localhost:8080/ (视频直播)http://localhost:8080/camera (录视频)(由于chrome的安全限制,建议在firefox下打开录视频页面) 使用效果 交流使用 交流群:337937322 项目地址:https://github.com/qieangel2...阅读全文

博文 2017-02-10 10:31:31 qieangel2013

个人支付接口现状分析——帮助个人开发者实现在线收款

本篇文章的目的,是向正在寻求个人支付方案的开发者朋友们提供一些信息,希望能给他们一定的帮助,结合自己的使用环境、业务领域和应用场景自行选择。对提到的所有第三方支付工具、第四方聚合支付工具绝无恶意贬低。 如何选择一个靠谱的个人支付服务方? - **选择标准** 1.var __标准__ = 安全性 && 稳定性 && 结算周期 && 费率 2.var __EFS__ = 使用环境 + 业务领域 + 应用场景 - **服务方分类** 互联网支付方式有很多种,基本上将网上支付服务分为几种: 1.原生网银支付 2.国内主流第三方支付 3.其他第三方支付 4.第四方聚合支付 - **网银支付** 想要接入银行,需要一家家的去谈,资质不足的话一般是不可以申请网银的,涉及到企业资格,承诺、合同、不菲的保证...阅读全文

博文 2019-08-18 19:23:05 paybob

轻量级且高性能的 Golang 网络库gnet

[项目详情链接](https://taohuawu.club/go-event-loop-networking-library-gnet) `gnet` 是一个基于 Event-Loop 事件驱动的高性能和轻量级网络库。这个库直接使用 [epoll](https://en.wikipedia.org/wiki/Epoll) 和 [kqueue](https://en.wikipedia.org/wiki/Kqueue) 系统调用而非标准 Golang 网络包:[net](https://golang.org/pkg/net/) 来构建网络应用,它的工作原理类似两个开源的网络库:[libuv](https://github.com/libuv/libuv) 和 [libevent](ht...阅读全文

GO1.5实现简单的http并发请求,支持:GET、POST、HEAD、PUT

package main import ( "flag" "fmt" "io/ioutil" "net/http" "sync/atomic" "time" ) func main() { connection := flag.Int("c", 200, "-c N") timeout := flag.Int("o", 5, "-o N") timeover := flag.Int("t", 5, "-t N") printresult := flag.Bool("p", false, "-p false") method := flag.String("m", "GET", "-m GET") url := flag.String("u", "http://127.0.0.1", "-u ...阅读全文

博文 2015-11-15 23:00:00 fyxichen

NSQ 最新版本(0.3.5)官方文档中文版

NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在GitHub。NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。NSQ具有分布式、去中心化的拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。NSQ非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。另外,官方还提供了拆箱即用Go和Python库。 本指南是 NSQ 官网 的中文翻译版本,基于最新版本 0.3.5 适用人群 本教程是给那些想详细了解如何使用 NSQ 分布式实时系统的开发人员编写的。 学习前提 在学习本教程之前,你需要对 Go 语言和计算机网络相...阅读全文

golang数据的类型识别、获取与判断

### golang数据的类型识别、获取与判断golang是一种简洁、方便、效率高的语言,很适合C/C++、Python等程序员使用。golang是静态语言,但是具有动态语言的特性,这篇文章主要介绍golang的数据类型在运行期的识别、获取和判断方法,让大家可以感受到golang静态语言的动态特性。#### 1.类型识别在我们编码中,经常会碰到读取数据时,要判断数据是哪种类型,典型的是json格式文本的读取和识别。在golang中主要用 x.(T)的方式来识别类型:x是变量,而且是不确定类型的变量,interface,如果是已知类型的,比如x是string,那么就会报错:invalid type assertion: data.(string) (non-interface type str...阅读全文

博文 2018-12-13 13:34:45 古月晨风

我读的go语言书籍

书名 地址 封面 《Go语言实战》 http://item.jd.com/12136974.html Go语言实战 《Go语言圣经》 https://yar999.gitbooks.io/gopl-zh/ Go语言圣经 《Go语言标准库》 https://github.com/polaris1119/The-Golang-Standard-Library-by-Example Go语言标准库 《Go语言并发之道》 https://item.jd.com/12504386.html Go语言并发之...阅读全文

博文 2019-02-14 22:32:40 weixin_33881050

8月10日相约阿里云数据库MySQL金融版线上发布会!

摘要: 2017年8月10日,云栖社区将迎来一场特殊的直播——阿里云数据库MySQL金融版线上发布会。 届时,我们不仅请到了阿里云金融业务部总监九河、阿里云数据库掌门人褚霸以及阿里云数据库产品专家乙休来一起宣布这个好消息,同时还邀请到一位在金融界绝对是重磅级人物的神秘嘉宾,一起来聊一聊产品发布背后的故事。 2017年8月10日下午14:00,云栖社区将迎来一场特殊的直播——阿里云数据库MySQL金融版线上发布会。 届时,我们不仅请到了阿里云金融业务部总监九河、阿里云数据库掌门人褚霸以及阿里云数据库产品专家乙休来一起宣布这个好消息,同时还邀请到一位在金融界绝对是重磅级人物的神秘嘉宾,一起来聊一聊产品发布背后的故事! 那么,MySQL金融版又是一个什么样的数据库呢? 顾名...阅读全文

2020年程序员生存指南

中国互联网络信息中心发布的第43次《中国互联网络发展状况统计报告》指出,截止于2018年12月中国网民规模达到8.29亿,同年新增网民高达5653万。在互联网高速发展和网民持续增长的背后离不开程序员的默默支持。据悉,2018年全球软件开发从业者人数高达2300万,预计今年年底可达2640万,但如此庞大的就业群体中真正能称为“软件工程师”的只有1%。调查统计,我国程序员多集中于北上广深杭等五个城市,这些城市在吸引优秀人才和企业的同时也反哺着互联网龙头企业。作为互联网飞速发展下的特殊群体,程序员在近几年备受民众关注,有人用这样一首打油诗描述程序员的工作和生活状态:十年编程两茫茫,工期短,需求长。千行代码,Bug 何处藏。纵使上线又如何,新版本,继续忙。黑白颠倒没商量,睡地铺,吃食堂。夜半梦醒,无...阅读全文

博文 2020-03-25 23:32:47 画皮易画心难

golang append的并发问题

先看一段代码 ackage main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup s := make([]int, 0, 1000) for i := 0; i < 1000; i++ { v := i wg.Add(1) go func() { s = append(s, v) wg.Done() }() } wg.Wait() fmt.Printf("%v\n", len(s)) } 结果 第一次:928 第二次:945 第三次:986 …… 多运行几次你就会发现,slice长度并不是1000,而是不停的在变,为什么呢? 因为append并不是并发安全的。 我们举一个简单例子,比如,当A和B两个协程运行appen...阅读全文

博文 2017-02-15 15:23:00 woodane

【北京,免费三餐,年14薪】golang程序猿在哪里?

**岗位职责:** 1.根据公司软件生产流程和规范,配合Android/iOS客户端开发组,完成服务器端接口设计和功能实现; 2.维护服务器,确保高可用性。 **任职要求:** 1.具备熟练阅读英文技术资料能力,习惯通过手册、google搜索、 stackoverflow、 serverfault等途径寻找问题答案; 2.了解Linux的使用,熟练使用命令行界面,能使用Linux服务器; 3.了解Linux编程,了解POSIX API、sockets编程,用C写过多进程/多线程的网络服务程序优先; 4.了解TCP/IP协议栈,HTTP协议...阅读全文

一款golang实现的高性能持久化消息队列

https://github.com/LevinLin/OPQOPQAn Open sourced Persistent message QueueCode is tested under go1.4.2 (CAUTION: OPQ hasn't been tested in production environment so far)Features1.persistent message storage2.push model - push message to target service and block when failure3.easy to use - simple API whith HTTP POST method, no addtional client integr...阅读全文

博文 2017-05-05 06:56:35 levin

(转)Erlang和Go的并行化concurrent比较

说到concurrent,一般会想到Erlang和Go语言,这两种语言的主打特性都是concurrent,Erlang有着20多年的历史,是为简化开发电信大并发和高可靠性应用而发明的语言,Go是Google从2007年开始设计,2009年opensource出来的,Go属于一种system language,opensource的就算这两种语言吧,公司内私有的语言则有TNSDL,SDL的一个变种,以前写过一篇SDL和Erlang比较的文章(http://bookjovi.iteye.com/blog/1233299),这三种concurrent语言各有不同,下面看看: 1)语言设计 Erlang的实现基于虚拟机beam,Go是编译型语言,有着独成一体的compiler(不同于gcc,Go很好...阅读全文

博文 2015-02-10 01:00:02 vanadiumlin

我们为什么选择Golang重构Worker系统

故事的起因在这里。 之前发了一篇帖子,讲了暴漫用golang重构了worker系统,有好多朋友问到语言选择的问题。 其实在用Golang重写我们的worker系统之前是做过很多调研的。 真正让我们下定决心的是 Parse的一篇文章:How We Moved Our API From Ruby to Go and Saved Our Sanity。 文中讲了Facebook的Parse团队为什么选择Golang代替Ruby。 我翻译下关键几点: Parse面临的问题 Parse跟暴漫的技术栈比较相似: 服务器Unicorn,部署使用Capistrano。在高流量面前很多问题都被指数级放大,在每次部署的时候 app server重启都要很长时间。并且Unicorn的重启并不是真正的‘gracef...阅读全文

博文 2015-09-09 19:54:01 长洪

go连接mysql产生大量连接

一直是这个问题困扰着哦我,为什么越来越多连接,到爆掉,换作postgresql驱动也是,还是我理解go语言并发有错呢 package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "strconv" "time" ) var xiancheng = 10 var over = make(chan bool) var sem = make(chan int, xiancheng) func checkErr(err error, hh int) { if err != nil { fmt.Printf("er...阅读全文

关于实现CRC16校验算法的两个函数

之前在2017年2月份发布过一个主题,也是关于CRC16的,现在我直接把函数写出来,希望能帮到有需要的朋友。对于在线监测设备数据传输标准来说,CRC16校验算法有基于通用modbus协议的,有基于环保局HJT-212协议的,以下两个函数算出来的结果都已通过现场数据包验证。 //通用modbus CRC校验算法 func modbusCRC(dataString string) string { crc := 0xFFFF length := len(dataString) for i := 0; i < length; i++ { //通用modbus取寄存器的低8位参与异或运算 crc = ((crc ...阅读全文

时速云与热璞科技达成战略合作,共同开拓企业云服务市场

2018年7月,企业级容器云计算领军企业时速云与上海热璞网络科技有限公司(简称热璞科技)正式达成战略合作,双方将基于各自的主营业务与资源优势,在产品、资源、渠道等多个方面展开深度合作,共同开拓金融、能源、运营商、广电等领域的云服务市场。 时速云是国内首家基于 Kubernetes 的企业级容器云计算服务商,业务涵盖容器 PaaS 平台、DevOps、微服务治理、AIOps 等领域,拥有金融、能源、运营商、制造、广电、汽车等领域的诸多大型企业及世界 500 强客户。 作为国内领先的企业级容器云计算服务提供商,时速云始终坚持以客户需求为中心,用领先的技术实力,为用户提供更高品质的产品和服务。目前,时速云已经为国家电网、新奥集团、戴姆勒奔驰等众多知名企业成功交付了容器云 PaaS 平台及相关产品,...阅读全文

慕课网Golang 讲师

慕课网是国内最大垂直类IT教育平台,目前有用户1100W+。 #用户基础好,流量高、持续分成,分成丰厚,没有时间地点限制。 #职位要求# 1.基础扎实,熟悉常用结构和算法。三年以上Golang使用经验。 2.精通Golang设计原理、源码分析和使用 3.有使用GO语言开发高并发、高可靠、可扩展的后端程序经验 4.热爱分享,逻辑清晰,语言表达能力强,有技术博客者优先。 contact:lirui@imooc.com QQ:154699251 慕课网BD经理 Gig...阅读全文

MySQL金融版发布会:4个男人能擦出的火花

摘要: 2017年8月10日,云栖社区将迎来一场特殊的直播——阿里云数据库MySQL金融版线上发布会。 届时,我们不仅请到了阿里云金融业务部总监九河、阿里云数据库掌门人褚霸以及阿里云数据库产品专家乙休来一起宣布这个好消息,同时还邀请到一位在金融界绝对是重磅级人物的神秘嘉宾,一起来聊一聊产品发布背后的故事。 2017年8月10日下午14:00,云栖社区将迎来一场特殊的直播——阿里云数据库MySQL金融版线上发布会。 届时,我们不仅请到了阿里云金融业务部总监九河、阿里云数据库掌门人褚霸以及阿里云数据库产品专家乙休来一起宣布这个好消息,同时还邀请到一位在金融界绝对是重磅级人物的神秘嘉宾,一起来聊一聊产品发布背后的故事! 那么,MySQL金融版又是一个什么样的数据库呢?顾名思义,它就是一款...阅读全文

熊猫TV招聘gopher

应聘邮箱: shenguanpu@panda.tv 应聘邮件标题为:"应聘XXX工程师-姓名"并随信附上: 你常上的3~5个网站(如方便请注明你的ID)、常用的开发工具; 你阅读过并推荐的3~5本技术类书籍; 你的简历。 工作地点:北京 望京soho 和王思聪一起创业 我们是谁? 从产品上来讲,熊猫现在还非常的年轻。一个正常视频网站的直播功能,再加上最精炼的用户交互,便把熊猫TV呈献给了各种迫不及待地用户们。 从技术上来讲,熊猫是有些积累的。技术团队均来自于一线互联网公司,大部分成员都有丰富的互联网和泛娱乐领域的业务产品经验,才能支撑熊猫迅速上线让大家High。 从大面上来讲,我们直接跳过小型,从中型系统起跳,目前已经到...阅读全文

5.1什么是Golang

目录:https://www.jianshu.com/p/e406a9bc93a9 golang语言介绍 go语言 Google开源 Go(又称Golang)是Google开发的一种静态,强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“T...阅读全文

博文 2020-03-13 23:33:07 寒暄_HX

go map的并发读写

我加了锁,可还是报错。 fatal error: concurrent map iteration and map write 这是为何呢?百度的各种方法也都试了,都不行。 ```go package main import ( "fmt" "sync" ) func main() { var counter = struct{ sync.RWMutex m map[string]int }{m: make(map[string]int)} for i := 0; i < 2; i++ { go func() { for j := 0; j < 1000000; j++ { counter.Lock()...阅读全文

golang学习的点点滴滴:并发超时处理

golang并没有在语言层次上提供超时操作,但可以通过一些小技巧实现超时。 原理: 并发一个函数,等待1s后向timeout写入数据,在select中如果1s之内有数据向其他channel写入则会顺利执行,如果没有,这是timeout写入了数据,则我们知道超时了。 package main import "fmt" import "time" func main() { ch := make(chan int, 1) timeout := make(chan bool, 1) // 并发执行一个函数,等待1s后向timeout写入true go func() { time.Sleep(1000) timeout <- true }() // 这里会等待ch或timeout读出数据 // 因为...阅读全文

博文 2014-10-04 19:27:21 亓斌哥哥

go作为web容器与php的性能比较

用go写了一个web程序,测了一把性能,发现结果如下: 并发数 响应时间(每100000个请求) 10 16.489387 100 20.43609 1000 51.357626 而php的同样程序,在fastcgi方式下,测试结果如下: 并发数 响应时间(每100000个请求) 10 62.194685 100 81.103587 1000 103.441608 结论:随着并发数的增大,go的处理能力波动比php还大。 看来go语言还需要很长的时间来完善呀。 如果利用runtime.GOMAXPROCESS将最大处理器数设置为2 那么处理时间实际上比默认的情况还糟糕...阅读全文

博文 2015-06-17 23:08:19 HopingWhite

弹性与性能兼俱,阿里云神龙云服务器全解析

摘要: 10月12日,在2017杭州云栖大会上,阿里云副总裁李津发布了全新一代的计算类服务器产品--神龙云服务器(X-Dragon Cloud Server)。 神龙云服务器是一种可水平弹性伸缩的高性能计算服务,融合了物理机与云服务器的各自优势,实现超强超稳的计算能力。神龙云服务器采用阿里云自主研发的虚拟化2.0技术,让神龙云服务器兼有普通云服务器的弹性和体验,以及物理机的高计算性能和完整特性,同时具备物理级别隔离的优势,真正做到资源零争抢。 ​ 先来看一张干货表格,了解神龙云服务器与传统物理机和虚拟机的功能对比 神龙云服务器具有四大突出亮点:极致性能、机密计算、秒级交付、与阿里云全站云产品互联互通。 作为一款云端弹性计算类产品,神龙云服务器达到了当前世...阅读全文