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

企业如何真正使用Docker

企业喜欢Docker。在许多企业的2016战略规划上,Docker已成为科技创业公司和金融服务集团的宠儿,尽管Docker还非常“年轻”。 众所周知,企业不需要在“DevOps改造”到某个阶段才能开始使用Docker。他们不需要一个微服务模型或一批全栈工程师。事实上,Docker多年IT改造最合适的选择,实际上可以帮助大团队更快地实现DevOps最佳实践。 混合云是将近一半企业的目标,其中大部分都在采用DevOps工具链。企业招聘云顾问,整合数据中心,打破工程团队之间壁垒,新应用程序迁移到AWS或其他公共云。 ### 精通混合云 尽管混合云想象中有灵活性的好处,但是跨多个复杂系统管理安全性和可伸缩性不是一件轻而易举的事情。绝大多数企业的内部应用程序受困于内部依赖,网络...阅读全文

Android 系统架构的核心层 — 框架层

Android系统架构包括应用层、框架层、硬件抽象层等,但其中最核心、最重要的还是框架层,这个层级是Android系统设计思想集中体现的部分,提供了大量的 API 供开发者调用,而弄清楚这些 API 的具体功能和用法则是 Android 应用程序开发过程中最为重要的环节。 框架层不只是应用程序开发的基础,也是软件复用的重要手段,任何一个应用程序都可以发布它的功能模块——只要发布时遵守了框架层的约定,那么其他的应用程序也可以使用这个模块。 框架层由多个系统服务(SystemService)组成,包括组件管理服务、窗口管理服务、地理信息服务、电源管理服务、通话管理服务等。所有的系统服务都寄宿在系统核心进程(System Core Process)中,在运行时,每个服务...阅读全文

容器技术毫无悬念主宰本次Amazon Re:Invent

在AWS大会上,这些天哪些东西最热门?如果你猜的是容器,那么你就猜对了。然而,这次的热门产品不再是简单的提供容器到亚马逊的基础设施,而是提供基于容器的管理、内省和保护功能,而这些是亚马逊不能做的或者不会做的。 本周在亚马逊Re:Invent、各种第三方厂商公布各种针对AWS的容器管理问题的解决方案。在许多情况下,他们增加与AWS更深层次的集成到现有的第三方基于云的监控服务上。 ## CoreOS CoreOS以其定制、基于容器的Linux发行版而出名,他已经与谷歌的容器管理工具Kubernetes融合开发的Tectonic。然而,让它运行在AWS没有容易,所以CoreOS 现在为Tectonic提供AWS安装程序。 CoreOS声称为管理容器提供一致的环境,无论实在开...阅读全文

如何学习go语言

1. 需要把其基础知识看一两遍,包括语法,要素做工程师都至少了掌握了一门编程语言的,有几年经验的怎么也会掌握2门以上的开发语言,并且是至少有一门语言是自己比较熟悉的。这是因为对编程语言的模式套路都有比较深入的了结,所以在学习一门新的语言的时候肯定会比较轻松。但是还是需要把一门语言的基本要素掌握的。可以看网络上有人总结的基础知识,多看一两个版本,加深影响还可以买一本go语言程序设计这样的书。书的好处是系统,集中,不是东一块,西一块,需要去搜集各种知识。越过初期非常模糊的坎,多看两遍基础知识,心里就有底了。2. 学习go语言编程的视频课go语言web编程等课程,我当时看的无闻录制的go语言web编程视频课,非常受益。我觉得是我学习go语言的捷径有以下收获:1)了解了go程序写程序的环境和工具2)...阅读全文

博文 2019-04-17 07:43:01 松哥的忽说

Golang之wait.Until 简单测试用例

测试目的,验证wait.Until的用法 //测试wait.Until() 的用途 package main import ( "fmt" "k8s.io/apimachinery/pkg/util/wait" "time" ) type stop struct { } func main() { stopCh := make(chan struct{}) //初始化一个计数器 i := 0 go wait.Until(func() { fmt.Printf("----%d----\n", i) i++ }, time.Second, stopCh) time.Sleep(time.Second * 10) stopCh <- stop{} // 下面的形式,也是可以的 //stopCh <...阅读全文

博文 2018-07-02 21:35:46 故新

go语言学习-method和function

go语言作为一种面向对象的语言,并没有提供C++中的“成员函数”这一种说法,而是用method(方法)来表示。 1、method和function的关系: method是特殊的function,定义在某一特定的类型上,通过类型的实例来进行调用,这个实例被叫receiver。(a Go method is a function that acts onvariable of a certain type, called the receiver. So a method is a specialkindof function. ---摘自《Go语言程序设计》)。 2、为普通类型添加method: go语言不允许为简单的内置类型添加method,如: func(iint)adder_int(ji...阅读全文

博文 2016-04-22 20:00:04 kuoshuang

golang SQLDriverConnect: {IM005} [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLAllocHandle on SQL_HANDLE_DBC 失败

问题: 2015/12/04 17:03:36 sqldb.go:2166: SQLDriverConnect: {IM005} [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLAllocHandle on SQL_HANDLE_DBC 失败 环境: go 语言编写 SQL SERVER 数据库 “code.google.com/p/odbc” 数据库操作使用的包 程序刚启动,运行一切正常,但是运行一段时间过后,总是会出现以上报错信息。仔细查看打印的报错信息,初步认为是数据库出现异常信息。 跟踪数据库运行情况,其他的程序连接数据库能连接上,排除数据库问题。但是SQLDriverConnect 提醒明显是提醒连接数据库失败。怀疑是否是因为数据库连接池出现的问题。 查看此应...阅读全文

博文 2015-12-25 14:00:01 xia_xing

使用Go语言完成文件夹的MD5计算

案例需求:我们的监测系统会定期的检查配置文件的变动,这些配置文件放置在一个独立的文件夹下面,我们可以通过对于整个的文件夹内所有文件进行md5的计算来完成监测,本文就通过Go语言实现了一个命令行工具,完成上述的需求。 1. 单一文件的md5计算 我们首先将需求任务进行分解,既然需要计算文件夹下的所有文件md5值,我们必须先考虑如何实现单一文件的md5值计算。 下面就是一个简单的md5求值程序,这里我们通过参数传递进去需要计算的文件,然后调用go语言提供的内置的crypto包中的函数来完成取值,计算得出的结果使用16进制的方式打印出来。 package main import ( "crypto/md5" "fmt" "io/ioutil" "os" ) func Md5SumFile(file...阅读全文

博文 2017-01-08 17:01:46 u014029783

从零开始创建一个属于程序员的网站,第一个个人博客-知识铺

一、 hexo1. Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。2. 采坑:随着Markdown文件的增多,hexo g 进行生成静态页面内存溢出3. 个人博客预览-左侧部分 3.1 主题推荐: hexo-theme-3-hexo3.2 本博客自己有定制化了,和原来的主题稍微不同4. 个人博客-主体部分: 4.1 添加音乐组件,学习过程听点轻音乐二、hugo2.1 hexo生成静态html很快遇到瓶颈,从新选型,找到hugo2.2 hugo 使用golang开发,性能原生支持的比较好2.3 hugo 不需要复杂的环境,一个执行文件即可,不像 hexo 依赖node.js npm webpac...阅读全文

博文 2019-10-28 09:32:45 aside section._1OhGeD

如何选择合适的分布式机器学习平台

导读:机器学习和深度学习是近年技术的热点,面对众多的机器学习平台如何进行选择,这是一个很困扰的问题。本文对分布式机器学习(ML)平台中使用的设计方法进行了调查,并提出了未来的研究方向。本文比较了机器学习平台设计方法和使用指南,是我和 Kuo Zhang 和 Salem Alqahtani 同学合作而成。 我们在 2016 年秋天写了这篇文章,并在 ICCCN'17(温哥华)提交了这篇文章。 机器学习,特别是深度学习(DL)在语音识别,图像识别和自然语言处理以及推荐/搜索引擎方面取得了成功。 这些技术在自主驾驶汽车,数字卫生系统,CRM,广告,物联网等方面都有广泛的应用。随着这些资本进入进一步推动技术变革,我们已经看到许多机器学习平台。 由于训练中涉及到的巨大的数据集和模型大小,机器学习平台通...阅读全文

golang内置类型和函数

/* 内置类型 值类型: bool int(32 or 64), int8, int16, int32, int64 uint(32 or 64), uint8(byte), uint16, uint32, uint64 float32, float64 string complex64, complex128 array -- 固定长度的数组 引用类型:(指针类型) slice -- 序列数组(最常用) map -- 映射 chan -- 管道 内置函数 append -- 把东西增加到slice里面,返回修改后的slice close -- 关闭channel delete -- 从map中删除key对应的value panic -- 停止常规的goroutine recover -- ...阅读全文

博文 2014-10-04 19:27:01 Robin3D

golang处理signal

signal一般用来实现优雅重启,或者重新加载配置文件等操作。 废话不多说,上表格 动作号码信号golang kill pid 15 SIGTERM terminated kill -9 pid 9 SIGKILL killed (应用程序无法捕获) kill -10 pid 10 SIGUSR1 user defined signal 1 kill -12 pid 12 SIGUSR2 user defined signal 2 ctrl+c 2 SIGINT interrupt ctrl+z 20 SIGTSTP stopped ctrl+\ 3 SIGQUIT quit kill -1 pid 1 SIGHUP operation not permitted (一般用来重新加载配置文件...阅读全文

博文 2018-08-22 15:30:01 highend

你所不知道的 Go 语言的一些令人惊叹的优点

![](https://raw.githubusercontent.com/studygolang/gctt-images/master/go-advantage/1.png) > 插图来自 https://github.com/ashleymcnamara/gophers 在这篇文章中,我将会讨论为什么你应该尝试下 Go 语言,并且应该从哪里开始下手。 Golang 是一种编程语言,在过去的几年中你可能听说过很多。尽管是在 2009 年创建的,但是近年来才开始流行。 ![](https://raw.githubusercontent.com/studygolang/gctt-images/master/go-advantage/2.png) > 上图是根据 Google Trends 得出...阅读全文

博文 2018-03-13 10:06:01 huangjian

Go语言的“main package”

以下摘自The Go Programming Language: Package main is special. It defines a standalone executable program, not a library. Within package main the function main is also special—it’s where execution of the program begins. Whatever main does is what the program does. main package不同于其它library package,它定义了一个可执行程序。其中的main函数即是可执行文件的入口函数...阅读全文

golang的log.Fatal()和panic()函数的区别

golang的log.Fatal()和panic()函数的区别 在讲两者区别之前我们先看一下os.Exit()函数的定义: func Exit(code int) Exit causes the current program to exit with the given status code. Conventionally, code zero indicates success, non-zero an error. The program terminates immediately; deferred functions are not run. 注意两点: 应用程序马上退出。 defer函数不会执行。 再来看log.Fatal函数定义 func Fatal(v ...interf...阅读全文

博文 2018-08-21 11:35:02 CodingCode

go环境搭建

Windows 系统下安装 Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.4.2.windows-amd64.msi)的安装包来安装。 默认情况下.msi文件会安装在 c:\Go 目录下。你可以将 c:\Go\bin 目录添加到 PATH 环境变量中。添加后你需要重启命令窗口才能生效。 安装测试 创建工作目录 C:\>Go_WorkSpace。 文件名: test.go,代码如下: package main import "fmt" func main() { fmt.Println("Hello, World!") } 使用 go 命令执行以上代码输出结果如下: C:\Go_WorkSpace>go run test.go Hello, World! 搭...阅读全文

博文 2015-11-04 12:00:06 weifeib

Go: 学习笔记1 让编程更有乐趣

一. 前因 Go语言的创造者,想要一种计算机语言,满足下列条件: 写出的软件能很快的编译支持现代多核硬件在网络环境中工作良好用起来有趣 Go语言用起来象如Python、Ruby这样的脚本语言,性能和安全上象C或Java。 二. 历史 2007.09 开始设计2009.11 公开发布2010.01 年度语言称号2010.05 开始在google使用2011.05 Google App Engine开始支持2012.03 GO1发布 三. 参考 Go语言入门Go语言程序设...阅读全文

图解Golang的垃圾回收(GC)算法

虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。 以下是Golang GC算法的里程碑: v1.1 STW v1.3 Mark STW, Sweep 并行 v1.5 三色标记法 v1.8 hybrid write barrier 经典的GC算法有三种: 引用计数(reference counting)、 标记-清扫(mark&sweep)、 复制收集(CopyandCollection)。 Golang的GC算法主要是基于 标记-清扫(markandsweep)算法,并在此基础上做了改进。因此,在此主要介绍一下标记-清扫(mark and sweep)算法,关于引用计数(reference counting)和复制收...阅读全文

博文 2019-04-13 01:34:39 豆瓣奶茶

广州创业团队,招一个熟悉GO语言的创业合作伙伴

不知道你有没想过创业,有没不甘做一个程序员,想通过创业证明自己,创造价值。 如果有,同时你又熟悉,精通GO语言, 那么很欢迎你加入我们。至少,也算是交个朋友, 目前我们的团队是刚起步,创业的方向已经定下来,现阶段在找天使融资中,同时另一个紧急且重要的就是找到一个合适的伙伴,熟悉,精通更好,GO语言的,如果你有兴趣,详聊项目。 最好你也在广州的。诚挚的邀请你的加入。...阅读全文

说一说golang的协程

协程是应用层的线程。 应用层是相对于内核层而言,是操作系统的概念,对应的是cpu的运行级别。操作系统的核心代码运行的ring0级别,应用程序的代码运行在ring3级别。内核与应用层的级别设置保证了一些高权限的操作只有内核代码能做,应用程序要使用这些功能必须通过调用操作系统的API(linux上称为系统调用)来调用内核的代码。这个调用会导致cpu从ring3到ring0的上下文切换,这个切换是耗费一些cpu时间的。 线程是操作系统的内核对象,多线程编程时,如果线程数过多,就会导致频繁的上下文切换,这些cpu时间是一个额外的耗费。所以在一些高并发的网络服务器编程中,使用一个线程服务一个socket连接是很不明智的。于是操作系统提供了基于事件模式的异步编程模型。用少量的线程来服务大量的网络连接和I...阅读全文

博文 2016-01-15 19:00:01 truexf

Docker的魔力,Make Apps Work Everywhere

![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2015/08/docker%E7%9A%84%E9%AD%94%E5%8A%9B-1024x669.png) Solomon Hykes 你可能会在你的手机上使用Google搜索引擎,但是你要明白,它不仅仅在你的手机上运行良好,在别人的手机上也是一样,因为在这后面是分布在全球的数据中心里面运行着的成千上万的机器。Facebook。Amazon以及其它最受欢迎的互联网应用也是同样的道理。这是如今这个时代构建App的唯一方式,也是构建全球即时响应服务的唯一方式。 ...阅读全文

选择Go语言的12个理由

编者按:多核化和集群化是互联网时代的典型特征,那语言需要哪些特性来应对这些特征呢?多数语言在语法层面并不直接支持协程,而通过库的方式支持的协程的功能也并不完整,比如仅仅提供协程的创建、销毁与切换等能力。如果在这样的协程中调用一个同步 IO操作,比如网络通信、本地文件读写,都会阻塞其他的并发执行协程,从而无法真正达到协程本身期望达到的目标,而Go语言的出现解决了这个问题。 以下是原文: Go语言是谷歌推出的一种编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 Go语言在编程语言的家族中算是一个比较新的成员,弥补C语言的不足并且保持了C的极简主义,因此在过...阅读全文

博文 2014-11-02 17:00:00 OnafioO

【译】 Golang 中的垃圾回收(一)

介绍 垃圾回收器负责追踪堆内存的分配,释放掉不需要的空间,追踪那些还在使用的分配空间。不同编程语言对这个机制的实现都很复杂,但是开发人员开发软件时候并不需要了解垃圾回收太细节的东西就能进行构建。另外,不同发布版本编程语言的VM和runtime也总是在改变和进化。对于应用开发人员来说,重要的是保持一个良好的work模型,了解编程语言里垃圾回收器的行为并且它们是怎么样支持这种行为的。 对于go 1.12版本来说,go语言使用了非分代,并发的三色标记和清扫的回收器。如果想了解如何进行标记和清扫的工作,请参考这篇文章。golang的垃圾回收器的实现每个版本都在更新和进化。因此一旦下个版本发布,讲任何细节的实现都不再准确。 总而言之,这篇文章不会去讲实际的实现细节。我会为你分享回收器的一些行为并且去解...阅读全文

博文 2019-07-12 14:34:58 lucifer_L

赢得Docker挑战最佳实践

![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2015/09/docker%E6%8C%91%E6%88%98-300x147.jpg ) 难怪Docker正在迅速发展。Docker,一个开源项目。仅仅两年,Docker价值近10亿美元,最近获得了9500万美元的资金。令人激动的是,我们看到有这么多开发者对这个项目的热情。然而,我将在下面讨论企业使用Docker本身是不够的。 ## 现代IT问题 许多企业IT团队解决这两个问题:首先,开发者和运维者在优先级上并不能总是达成一致。企业必须应对的挑战将来自开发人员的代码和运维团队的代码切换。这两个团队之间的关系很难和谐相处。 第二,将代码从一个地方迁移到另一...阅读全文

一个 golang 应用监控的 package,包括系统信息和业务信息监控

golang 编写的程序,在程序开发完成之后,我们更想做的是对程序运行的状态能够时刻了解,或者在业务上跑着的程序出现了 bug 我们想要更加快速方便的知道问题出在哪里?监控包括程序运行的 cpu ,内存等系统状态,还有我们可以根据自己的需要自定义需要的监控数据。例如某一个任务队列,某一个函数的执行情况,错误出在哪里等等 https://github.com/wgliang/goappmonito...阅读全文

《go语言程序设计》学习(一)

序言 2年前的这个时候认识到了golang,然后兴匆匆的去书店买了本书,go语言,云动力吧好像是,结果拿过来一开始,环境就设置不上,折腾了几天,然后就不了了之了。 1年前的这个时候,再次路过书店,看到了《go语言程序设计》这本书,按耐不住心痒痒,又买回来,结果看了两章,又头昏脑胀,没坚持下去。 前几天看很多人都在讨论golang,我就又去把书翻出来了,这次决定要再前进一步,争取把书看完。 (一个拖延症的懒癌患者的内心,是咆哮的) 一,示例代码:gobook已下载 二,开发环境:go 1.4,vim-go,vim-go的插件还是折腾了一下。。有些包直接go get拿不到,到golang的网站上,提供了一个tar的下...阅读全文

博文 2015-08-02 03:00:01 mruoli

golang交叉编译

Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build Windows 下编译 Mac 和 Linux 64位可执行程序 SET CGO_ENABLED=0SET GOOS=darwinSET GOARCH=amd64 go build ...阅读全文

博文 2018-06-30 14:34:44 ouyangan

Android app打包知识点大全

android app开发结束后,就需要对app进行打包、部署与发布了,那对于android初学者而言,如何对apk进行打包呢?今天小编就为大家分享一二,一起来看看吧~~ aapt package -m -J src -M AndroidManifest.xml -S res -I android.jar //这句命令主要是重新自动生成R.java文件,比如增加个图片或者字符串或者增加个layout目录xml文件 mkdir D:\testapk\classes //这句命令是创建个编译*.java源文件输出*.class存放的目录,文件夹名可以随便命名. javac D:\testapk\src\aimoxiu\theme\moxiutheme\*.java ...阅读全文

go基本工程构建<一>

1 关于go源代码 每个go源代码都从 package {xxxx 包声明} 开始,表示该go代码属于此包。包是go最基本的分发单位,也是工程管理中依赖关系的体系。 go可执行程序从main包的main函数开始,main函数不带任何参数也无任何返回。 package main import "fmt" // 我们需要使用fmt包中的Println()函数 func main() { fmt.Println("Hello, world. ") } 2 工程文件 go采用目录结构,文件夹来推到工程结构,一般,构建一个工程需三个文件夹 如工程放在目录 /data/pro/demo ├─ ├─ |-- hh.go ├─ ├─demo.go...阅读全文

细数实现容器可扩展性的多种途径

一些企业已经进军新兴的容器虚拟化领域,但企业或开发者已经有越来越多的担心,这项技术可能并不像宣传的那样有效,针对先进的应用程序和微服务——至少目前还没有。 目前,最大的问题是可扩展性。Docker,一家领先的容器开发公司,毫不掩饰自己对更高可扩展性的欲望,为此,他们首先需要解决的是在大量的容器之间实现更高效的网络通讯。目前,该公司通过与Red Hat、亚马逊和IBM这样的公司联合开发项目,提供了大量的编排和管理工具。 该公司还与谷歌及其Kubernetes容器管理系统合作密切,但正如Platform的Timothy Prickett Morgan指出的那样,即使Kubernetes缺乏可扩展性计,但是至少这是谷歌的标准。典型的谷歌集群,大约由公司的Borg controller监...阅读全文

Go语言中的byte和rune

Go语言中byte和rune实质上就是uint8和int32类型。byte用来强调数据是raw data,而不是数字;而rune用来表示Unicode的code point。参考规范: uint8 the set of all unsigned 8-bit integers (0 to 255) int32 the set of all signed 32-bit integers (-2147483648 to 2147483647) byte alias for uint8 rune alias for int32 可以通过下面程序验证: package main import "fmt" func byteSlice(b []byte) []byte { return b } func...阅读全文

用golang实现mongodb数据库连接池-基本篇

版本 golang -- 1.12.4 mongodb -- 4.0 go driver -- 1.0.0 简介 mongodb的数据库driver在官方文档里面明确写明所有的数据库连接需要自己建立和释放,而且建议尽量复用已有的建立,那么也就是说driver里面并未实现连接池的功能。在我们实际应用中就需要自己实现这套数据库连接池提升程序和数据库之间的执行效率。 设计思路 用一个数组来存放数据库连接的指针,并记录每一个指针两个状态: a.是否申请了数据库连接 b.这个连接是否已经给系统在使用中。举个例子就比较好理解了: 申请一个用于存放数据连接的数组,一开始空的什么都没有 pool_initial.png 程序需要一个数据库连接,连接池把数组第一个位置建立一个数据库连接,并把这个连接的状态置为...阅读全文

博文 2019-05-14 11:34:53 kmnemon

Golang学习日记(一) 环境搭建

本人一个纯的C#客户端程序员,一直搞WPF,最新想尝试点新的东西。。背景介绍完毕 ——————————————————割———————————————————— 一边记笔记一边下载我大golang的平台安装包,go1.3.3.darwin-amd64-osx10.6.pkg,我是x64的机器,所以下载amd64的版本,当然x86的同学需要下载的是386版本。下面是我的参考的一些有关环境搭建的链接,是之前开的小灶: - http://bigasp.com/archives/594 - http://wenku.baidu.com/link?url=A7vF9nu2pohavJn8yM7KPkPQ0017ZOjGlivVDHeerUMh8orUaWWxUb...阅读全文

Docker工具箱继续增加

Docker容器技术的发展继续阔步向前。 总部位于旧金山的Docker公司已经事实上成为Linux分布式应用程序容器运动的领袖。上周,该公司宣布了对Docker Hub的一项更新,更新包含了一个新的应用程序架构和一个新的“前端技术堆栈”。 另外,工作负载管理专家Univa corp 本周宣称其Grid Engine Container 整合Docker容器到平台资源管理器。新功能将提供大规模运行容器以及混合容器和其他工作负载的能力。 针对用户需求,其他开源公司计划在未来几周接受Docker技术。并且将其作为他们最新产品升级的一部分。越来越多的迹象表明大规模的容器炒作逐渐让位给更广泛的Docker采用和生产环境的实际部署。 Docker Hub被用于源代码管理集成,当然...阅读全文

Golang - 调度剖析【第一部分】

简介 首先,Golang 调度器的设计和实现让我们的 Go 程序在多线程执行时效率更高,性能更好。这要归功于 Go 调度器与操作系统(OS)调度器的协同合作。不过在本篇文章中,多线程 Go 程序在设计和实现上是否与调度器的工作原理完全契合不是重点。重要的是对系统调度器和 Go 调度器,它们是如何正确地设计多线程程序,有一个全面且深入的理解。 本章多数内容将侧重于讨论调度器的高级机制和语义。我将展示一些细节,让你可以通过图像来理解它们是如何工作的,可以让你在写代码时做出更好的决策。因为原理和语义是必备的基础知识中的关键。 系统调度 操作系统调度器是一个复杂的程序。它们要考虑到运行时的硬件设计和设置,其中包括但不限于多处理器核心、CPU 缓存和 NUMA,只有考虑全面,调度器才能做到尽可能地高效...阅读全文

博文 2018-08-16 17:35:43 sxssxs

GO语言练习:第一个Go语言工程--排序

1、代码 2、编译 3、运行 1、代码框架 /home/fengbo/sorter $ tree . ├── bin ├── pkg ├── readme.txt └── src ├── algorithms │ ├── bubblesort │ │ ├── bubblesort.go │ │ └── bubblesort_test.go │ └── qsort │ ├── qsort.go │ └── qsort_test.go └── sorter └── sorter.go 1.1、src/algorithms/bubblesort/bubblesort.go //bubblesort.go package bubblesort func BubbleSort(values []int...阅读全文

博文 2015-07-05 03:00:01 fengbohello

在云平台上基于Go语言+Google图表API提供二维码生成应用

二维码可以说已经深深的融入了我们的生活当中,到处可见它的身影;但通常我们都是去扫二维码,以前我们分享给朋友一个网址直接把Url发过去,现在我们可以把自己的信息生成二维码再分享给他人。这里就分享一下基于Go语言+Google图表API提供二维码生成功能的小应用,并演示如何把它发布到云平台上,让每个人都可以通过网络访问使用它。Google图表APIGoogle在http://chart.apis.google.com 上提供了一个将表单数据自动转换为图表的服务。不过,该服务很难交互, 因为你需要将数据作为查询放到URL中。此程序为一种数据格式提供了更好的的接口: 给定一小段文本,它将调用图表服务器来生成二维码(QR码),这是一种编码文本的点格矩阵。 该图像可被你的手机摄像头捕获,并解释为一个字符...阅读全文

博文 2015-12-13 10:00:01 testcs_dn

无缓冲和有缓冲通道

!["Go 之旅 插图,由 Go Gopher 的 Renee French 创作](https://raw.githubusercontent.com/studygolang/gctt-images2/master/buffered-and-unbufferd-channel/next-recvier.png) Go 中的通道(channel)机制十分强大,但是理解内在的概念甚至可以使它更强大。实际上,选择缓冲通道或无缓冲通道将改变应用程序的行为和性能。 ## 无缓冲通道 无缓冲通道是在消息发送到通道时需要接收器的通道。声明一个无缓冲通道时,你不需要声明容量。例如: ```go package main import ( "sync" "time" ) func main() { c :=...阅读全文

博文 2019-09-23 12:34:16 TomatoAres

golang99道练习题之22

**1.题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。** **2.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。** **3.程序源代码: ** ```go package main import "fmt" func main() { for i := 'x'; i <= 'z'; i++ { for j := 'x'; j <= 'z'; j++ { if i != j { for k := 'x'; k <= 'z'; k++ { if i != 'x' && k != 'x...阅读全文

博文 2018-12-11 20:24:11 hdking

Golang项目部署1,独立部署

文章来源:https://goframe.org/deployment/standalone 独立部署 使用GF开发的应用程序可以独立地部署到服务器上,设置为后台守护进程运行即可。这种模式常用在简单的API服务项目中。 服务器我们推荐使用*nix服务器系列(包括:Linux, MacOS, *BSD),以下使用Ubuntu系统为例,介绍如何部署使用GF框架开发的项目。 1. nohup 我们可以使用简单的nohup命令来运行应用程序,使其作为后台守护进程运行,即使远程连接的SSH断开也不会影响程序的执行。在流行的Linux发行版中往往都默认安装好了nohup命令工具。 命令如下: nohup ./gf-app & 2. tmux tmux是一款Linux下的终端复用工具,可以开启不同的终端窗...阅读全文

老虞要学GoLang-为什么会学习GoLang

前言 2009年开始接触软件开发,一直深爱着它,喜爱淘腾些新技术新技能,却至今没有所成。也许专心才能做好一些事,2013年初接触Go Lang,感受着这门语言带来的魅力,自己该在这条路上留下足迹,以此见证自己的成长历程。 为什么会学习Go Lang 编程本身是一门艺术,Go Lang 有着无尽想象的魅力。 Gmail, Google Search, Google Translate,YouTube 这些已成为我生活工作不可缺少的一部分,足够证明Google的产品是优秀的,同样Go Lang也是优秀的,事实证明确实如此。 Go Lang是开源项目,它的社区时活跃的,它的创造者是行业Big牛。 Go Lang 被创造的目的是明确的:提高开发人员的编程效率,构建服务器软件...... 一段摘录 h...阅读全文

博文 2015-07-21 15:00:03 Gopher老虞

iNote单页博客发布

> iNote是在[beego(golang语言)](http://beego.me/ "beego")&[bootstrap](http://getbootstrap.com/ "bootstrap")等开源项目基础之上开发的 ## 功能简介 - 前后端完全分离 - 响应式布局 - 内嵌[markdown](https://pandao.github.io/editor.md/ "markdown")编辑器 - URL支持hash(#)+id 文章导航 - 支持更换首页banner大图背景 - 文章功能 - 文章内容照片墙预览 - 文章标签功能 - 文章留言功能 - 留言回复功能 - Web后台管理 ## Linux环境编译安装(OSX,Win环境类似...阅读全文

使用容器,企业可以更快更好地赚钱

容器技术基于传统的容器虚拟化技术,采取了一种全新的应用打包理念,让整个云计算产业为之颤抖。它能够为开发人员提供几乎相同的开发、测试、预发布和生产环境。同时得益于容器为微服务提供的恰到好处的抽象,容器技术对传统大型软件的解耦也有一套优雅的解决方案。从云平台提供商的角度来看,容器技术简化了混合云的实现,而将负载的变化扔给更上层处理。去年以来,已经有许多云平台厂商将Docker集成到核心云服务上。 ### 托管服务提供商(HSP)——提高投资回报率(ROI) HSP在很多年前就已经认识到容器的好处,目前他们采用这项技术提高ROI。 与传统虚拟机相比,容器虚拟化允许HSP在相同的硬件上放置更多应用程序,对于他们的客户而言,也不存在性能退化,因为容器更轻量,分配但未使用的资源可以共享给其...阅读全文