Golang 线程 和 协程 的区别对于进程、线程,都是有内核进行调度,有 CPU 时间片的概念,进行抢占式调度(有多种调度算法)对于协程(用户级线程),这是对内核透明的,也就是系统并不知道有协程的存在,是完全由用户自己的程序进行调度的,因为是由用户程序自己控制,那么就很难像抢占式调度那样做到强制的 CPU 控制权切换到其他进程/线程,通常只能进行协作式调度,需要协程自己主动把控制权转让出去之后,
转载
2023-12-01 09:04:32
61阅读
代码放在 https://github.com/bigben0123/workerPool 安装完go软件后。执行目录中的install.cmd即可。
转载
2018-03-30 17:55:00
89阅读
2评论
# 如何使用Go语言创建多级目录
## 流程步骤
| 步骤 | 描述 |
| ---- | ---------------------------------- |
| 1 | 导入os包 |
| 2 | 创建目录路径字符串 |
| 3
原创
2024-07-12 04:45:17
126阅读
随着微服务的兴起,行业里出现了非常多优秀的微服务网关框架,今天教大家搭建一套国人,用Golang写的微服务网关框架。这里啰嗦一句,可能到今天还有人不理解什么是微服务,为什么要用微服务。目前网上相对比较模糊,没有精确的定义,但大家的意思都差不多,这里个人通俗描述,就是小项目发展到大项目过程中,出于已维护,与稳定性等考虑,将一个整体项目分为多个微小服务。微服务网关的作用是在用户第一个网关服务器,你按照
转载
2024-01-29 20:51:00
106阅读
接口在go语言中,也可以定义接口类型。我们都知道,在面向对象的程序语言中,接口是实现多肽的必要条件。我们可以通过接口来接收不同的实现。go语言中通过interface关键字来定义接口。//定义一个Reader接口
type Reader interface{
//定义接口方法
read()
}
复制代码上面定义了一个接口,那么如何来实现接口呢?在go语言中,可以在自定义的类型中通过方法来实现接
转载
2023-07-12 00:26:05
126阅读
Go 实现文件分片上传 Go语言在写HTTP服务程序时,会经常用到文件上传和文件下载,文件上传和文件下载都可以用http包,默认的功能基本上够用了。http包支持文件下载的断点续传和进度显示,文件上传貌似不支持断点续传,不知道是不是要web端来实现。然后我自己配合web端实现了大文件分片上传,来完成断点续传和进度显示的功能。基本思想是,在web端将上传的文件进行分片处理,然后向服务端发送上传请求
转载
2023-10-01 09:50:35
269阅读
在上节课内容中,我们学习实现了写文章的功能。本节课,我们要实现首页功能的开发。首页是用户登录后要展示的页面。最终想实现的功能是:点击首页,就会自动查询数据库,显示文章;如果文章较多,我们可以实现分页。一、查询文章功能1.1 Controller我们首先修改home_controller.go文件,在Get()方法中,先查询所有的文章,并显示到页面上。因为文章可能很多,为了更好的用户体验,我们需要分
转载
2023-07-12 00:26:34
304阅读
在上一篇博客 理解Cookie和Session 中,我们了解了 Cookie 和 Session 的一些基础知识,也知道了 Session 的基本原理是由服务端保存一份状态信息(以及它的唯一标识符),客户端会通过这个唯一标识符来访问这份状态信息数据。整个客户端和服务端的交互过程可以概括为以下三个步骤:客户端第一次发送请求时,服务端创建 Session,并生成唯一标识符 SessionId服务端将
转载
2023-12-12 21:28:30
64阅读
# Go语言实现ERP系统
ERP(企业资源计划)是一种管理软件,用于帮助企业整合和管理各个业务流程。随着技术的发展,越来越多的企业开始采用新兴编程语言进行ERP系统的开发。Go语言,因其高效、简洁和并发处理能力,受到越来越多开发者的青睐。本文将介绍如何利用Go语言实现一个简单的ERP系统,并提供相应的代码示例。
## 为什么选择Go语言?
* **高效**:Go编译后的程序运行速度快,适合
# Go语言实现多态——一窥其奥秘
## 什么是多态?
多态是面向对象程序设计中的一个重要概念。它指的是同一种操作在不同对象上可以呈现不同的行为。在Go语言中,虽然没有传统面向对象语言(如C++或Java)中那样的类和继承,但它通过接口和组合的方式实现了多态。
## Go语言中的接口
在Go语言中,接口是一组方法签名的集成。任何类型只要实现了接口中所有的方法,就被视为实现了该接口。这样一来
在这篇文章中,我将复盘如何使用Go语言实现NTP(网络时间协议)服务的过程。通过系统化的分析和代码示例,我会介绍这个实现的背景、技术原理、架构解析、源码分析、案例分析以及扩展讨论。
NTP是一种用于同步计算机时钟的协议。它主要用于确保分布式系统中的各个节点具有一致的时间,这是网络通信、日志记录和数据一致性等操作的基础。在分布式系统不断扩大的今天,实现准确的时间同步显得尤为重要。
```merm
需求如下: 使用函数实现一个简单的图书管理系统 每本书有书名,作者,价格,上架信息 用户可以在控制台添加书籍,修改书籍信息,打印所有的书籍列表 1打印菜单 2等待用户输入菜单选项 3添加书籍的函数 4修改书籍的函数 5展示书籍的函数 6退出 (该项目不涉及文件操作,在线操作等,仅是一个终端运行的小项目) 思路如下: 1首先先定义一个结构体,包含书籍各项信息。定义一个书籍切片,存放所有书籍。 2先写
转载
2024-10-26 08:32:52
18阅读
你是否也存在过这样的需求,想要公开一个接口到网络上。但是还得加点权限,否则被人乱调用就不好了。这个权限验证的过程,最好越简单越好,可能只是对比两个字符串相等就够了。一般情况下我们遇到这种需要,就是在函数实现或者添加一个全局的拦截器就够了。但是还是需要自己来写那部分虽然简单但是很啰嗦的代码。那么存不存在一种方式,让我只管写我的代码就完了,鉴权的事情交给其他人来做呢?OpenAPI 一般情况下,就是允
转载
2023-07-12 00:28:23
151阅读
# Go语言实现爬虫
随着互联网的发展,爬虫技术逐渐成为数据获取中的一项重要工具。利用程序自动抓取网页信息,可以帮助我们快速获取所需数据。在本文中,我们将介绍如何使用Go语言实现一个简单的爬虫。
## 什么是爬虫?
网络爬虫,或称为网页爬虫,是一种自动访问互联网页面并提取信息的程序。网络爬虫广泛应用于搜索引擎、数据挖掘和信息整理等领域。在实现爬虫时,我们需要处理请求、解析网页和存储数据等任务
原创
2024-10-25 06:00:40
40阅读
go语言的反射机制,是程序在运行期间可以对程序本身的一些变量或者结构体等信息进行访问和修改,可以让函数接口的类型更加多元化。比如,通过给函数定义interface{}类型的参数,在函数内部利用反射针对不同类型参数进行不同处理。反射的调用是使用reflect包,reflect 包的两种类型 Type 和 Value,这两种类型使访问接口内的数据成为可能,它们对应两个简单的方法,分别是 reflect
转载
2024-10-01 14:29:42
27阅读
一. 归并排序算法简介归并排序算法是一种采用了分治策略的排序算法。它通过递归地先使每个子序列有序,再将两个有序的序列进行合并成一个有序的序列(也可以采用非递归的方式实现,效率更高一些)。归并算法是稳定和高效的排序算法(适用于复杂对象(结构体)数列的稳定排序)二. 算法复杂度 最理想情况:O(nlogn)最坏情况: O(nlogn)三. 算法分治思路将数组切片为相同
# Go语言实现ONVIF协议的科普文章
## 引言
ONVIF(Open Network Video Interface Forum)是一项国际标准,旨在促进不同制造商和设备之间的互操作性,尤其是在IP监控摄像头和相关设备的领域。当我们使用Go语言来实现ONVIF协议时,可以高效地处理网络请求,简化与各种网络监控设备的通信。
本文将带您了解如何在Go语言中实现ONVIF协议,并提供实例代码
评论有人提到没有例子,不知道讲的是什么。因此,为了大家能够更好地理解,特意加了一个示例。其实本文更多讲解的是 flag 的实现原理,加上示例之后,就更好地知道怎么使用了。建议阅读 《Go语言标准库》一书的对应章节:flag – 命令行参数解析。在写命令行程序(工具、server)时,对命令参数进行解析是常见的需求。各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用。如果命令行参数纯
这两天学习微磁学模拟,需要安装mumax3,安装前提是显卡是英伟达的。安装过程参考了一篇文章“Installing-Mumax-and-Gnuplot-in-Windows-10-Step-by-Step”,过程非常详细,网上很容易查到,我的主页也有发,很推荐参考。根据文章内容的顺序安装即可,下面称为“文章”。安装之后需要仔细检查环境变量有没有加上。目录驱动CUDA安装Go语言、VScodeSet
转载
2023-08-11 10:50:12
220阅读
这个例子用Go语言的包"container/list"实现一个线程安全访问的队列。其中不少细节耐人寻味,做出它则是花费了不少精力,找不到样例啊!Go语言的许多优点自不必说,然而从C/C++程序角度看,语言的语法也好,程序的实现方式也好,看起来总有点怪怪的感觉。在这个程...
转载
2017-08-19 22:47:00
179阅读
2评论