synchronization channel golang

golang按换行符一行一行读取GBK文件

package awesomeProject1 import ( "bufio" "fmt" "github.com/axgle/mahonia" "io" "log" "os" ) func main() { filename := "/tmp/test.txt" readTbkByLine(fi ......
一行 换行符 文件 golang GBK

Java synchronized

synchronized是Java中最基本的线程同步机制之一,通过在方法或代码块上添加synchronized关键字,可以确保只有一个线程可以访问该方法或代码块。它是Java中实现线程安全的重要机制之一。 synchronized关键字的使用方式有两种: 1、修饰实例方法 当synchronized ......
synchronized Java

Java synchronized 、ReentrantLock和Semaphore

synchronized 在Java中,使用synchronized关键字可以实现对代码块或方法的同步访问,以确保多个线程不会同时访问共享资源。当一个线程获取了对象的锁(即进入了synchronized代码块),其他线程如果也希望获取该对象的锁,它们将被阻塞,直到拥有锁的线程执行完毕并释放锁。 因此 ......
ReentrantLock synchronized Semaphore Java

golang的try catch 方式

列子如下 :main.go 1 try.Catch(func(err error) { 2 //异常处理 3 fmt.Println(err) 4 }).Then(func() error { 5 //执行代码 1 6 //... 7 8 //如果有异常即抛出异常 9 return nil 10 } ......
方式 golang catch try

蓝牙BLE从机peripheral讲解十一(单载波\SingleChannel\Channel)

前言: 针对CH582芯片使用单载波\SingleChannel测试进行讲解。 开启单载波: CH58X_BLEInit(); HAL_Init(); GAPRole_PeripheralInit(); LL_SingleChannel( 19 ); //需要放在角色初始化后面并开启单载波 whil ......
载波 SingleChannel peripheral Channel BLE

cerbos golang 内部policy check 处理简单说明

主要是想尝试实现一个rust 的check 方法,所以先研究下golang 的内部实现 CheckResources func (cs *CerbosService) CheckResources(ctx context.Context, req *requestv1.CheckResourcesR ......
cerbos golang policy check

Golang(Go语言) 对windows进行注销、关机、重启、闪电关机、闪电重启的操作

有个小项目需要对windows系统进行远程电源操作,于是封装了以下代码方便使用。 目录结构如下: main.go package main import ( "fastshutdown/utils/power" "fmt" ) func main() { err := power.Shutdown( ......
windows 语言 Golang

golang的蓝牙通信库

github.com/tinygo-org/bluetooth: TinyGo是一个Go语言编译器,它专注于微控制器和小型计算机系统。这个库是TinyGo项目的一部分,用于支持蓝牙低功耗(BLE)设备。 github.com/go-ble/ble: 这是一个轻量级的Golang库,旨在简化与蓝牙低功 ......
golang

golang之媒体处理

[视频] 获取视频封面图: 1) 如果是使用oss的话, 可以添加指定的后缀生成指定图片 获取视频长度: 1)若是oss上的视频,则可以使用阿里云的IMM中的提取视频信息的服务 注意这里获取需要使用到签名之后获取对应的数据 这里使用基于阿里云oss包: github.com/aliyun/aliyu ......
媒体 golang

处理golang gin框架下载文件时中文文件名乱码问题

func Download(c *gin.Context) { c.Writer.WriteHeader(http.StatusOK) //设置文件类型 c.Header("Content-Type", "application/vnd.ms-excel;charset=utf8") // Path ......
文件 乱码 文件名 框架 golang

go-carbon v2.2.14 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库

carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。 目前已被 awesome-go 收录,如果您觉得不错,请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安装 ......
轻量 轻量级 语义 开发者 go-carbon

Golang使用kcp

安装 go get -u github.com/xtaci/kcp-go import ( "fmt" "github.com/xtaci/kcp-go" "golang.org/x/net/ipv4" "golang.org/x/net/ipv6" "net" ) // KCP 服务器 func ......
Golang kcp

C#的Channel

理解并掌握C#的Channel:从使用案例到源码解读(一) 引言 在C#的并发编程中,Channel是一种非常强大的数据结构,用于在生产者和消费者之间进行通信。本文将首先通过一个实际的使用案例,介绍如何在C#中使用Channel,然后深入到Channel的源码中,解析其内部的实现机制。 使用案例一: ......
Channel

Golang中如何自定义时间类型进行xml、json的序列化/反序列化

在日常开发工作中,我们进行会遇到将 struct 序列化 json字符串以及将 json字符串 反序列化为 struct 的场景,大家也对此十分熟悉。 最近工作中,遇到了需要将 struct 序列化 xml字符串以及将 xml字符串 反序列化为 struct 的场景,对于普通类型的字段,比如int、 ......
序列 类型 时间 Golang json

Golang学习笔记-定时任务

指定具体时间执行 package main import ( "fmt" "time" ) func main() { // 指定执行时间为 2023-11-29 00:00:00 executionTime := time.Date(2023, time.November, 29, 0, 0, 0 ......
任务 笔记 Golang

golang http请求 tcp连接没有关闭

参考链接 https://studygolang.com/articles/3138 func dialTimeout(network, addr string) (net.Conn, error) { return net.DialTimeout(network, addr, time.Secon ......
golang http tcp

Golang-常见数据结构实现原理

chan 1.chan数据结构 src/runtime/chan.go:hchan定义了channel的数据结构: type hchan struct { qcount uint // 当前队列中剩余元素个数 dataqsiz uint // 环形队列长度,即可以存放的元素个数 buf unsafe ......
数据结构 原理 常见 结构 数据

Golang - context.TODO()和context.Background()的区别

context.Background():上下文的默认值(创建上下文的默认起点),这个函数返回一个空context,返回值就是根节点,这只能用于最高等级(在main函数、初始化或顶级请求处理中),因为所有其他的上下文都应该从它衍生(Derived)出来 context.TODO():通常用作占位符或 ......
context Background Golang TODO

打包Golang并在Android环境下运行

实践: 1、 打包Golang并在Android环境下运行-CSDN博客 https://blog.csdn.net/lszy24/article/details/78948130 翻译 搜索 复制 ......
Android 环境 Golang

实现一个简易的golang版本的CompletetableFuture

背景 将入侵4.0 java代码迁移到入侵5.0 golang项目时,有些并行处理的功能用到了java的CompletetableFuture框架,但是golang中好像没有类似的框架(可能我没有找到),所以打算手动写一个简易的golang版本的CompletetableFuture。 在入侵jav ......
CompletetableFuture 简易 版本 golang

centos8 yum时总报错Failed to synchronize cache for repo ‘AppStream‘, ignoring this repo.

进入/etc/yum.repos.d/找到对应的CentOS-AppStream.repo文件,把原始的baseurl换成​​​​​​https://mirrors.aliyun.com/centos/8-stream/AppStream/$basearch/os/ 跟其他的不一样的地方在8-str ......
repo synchronize AppStream ignoring centos8

Golang GORM 数据库操作

一. 初始化连接 1 package model 2 3 import ( 4 "fmt" 5 6 "gorm.io/driver/mysql" 7 "gorm.io/gorm" 8 ) 9 10 /*** 11 Navicat 数据库可视化工具: https://www.navicat.com/e ......
数据库 数据 Golang GORM

[岩禾溪] C++20项目 muduo网络库 项目实战 (2)InetAddress & Channel

​ 目录 ​本项目由 岩禾溪 原创 InetAddress.ixx 模块介绍 类 InetAddress: C++20 新特性内容: InetAddress.cpp 函数实现解释: Channel.ixx 模块介绍 类 Channel: Channel.cpp 模块导入和常量定义: 类 Channe ......
项目 InetAddress 实战 Channel muduo

Windows安装Golang

1.到官网下载go安装包,安装 https://go.dev/dl/​# 假设安装在:D:\go 2.删除自动添加的GOPATH # 安装时会自动添加GOPATH变量到用户环境变量,需要删除,如果没有就不用管。 3.新建工作目录 # 假设工作目录定为:D:\code\go_project​在go_p ......
Windows Golang

Golang Gin Session & Cookie

一. Cookie 1 func (con UserControl) Index(c *gin.Context) { 2 /*** 设置Cookie 3 func (c *Context) SetCookie(name, value string, maxAge int, path, domain ......
Session Golang Cookie Gin amp

synchronized与锁升级

synchronized与锁升级 Java对象头 Java对象在内存中有额外的对象头的占用,为了8字节对齐,还会进行数据填充: 对象头: 64位系统:Mark Word(8) + 对象指针(8)(没有开启指针压缩,开启后对象指针为4) 实例数据 对齐填充 synchronized锁状态 Mark W ......
synchronized

golang 根据 json path 提取字段值

在Golang中,可以使用github.com/tidwall/gjson包来根据JSON路径提取字段值。 package main import ( "fmt" "github.com/tidwall/gjson" ) func main() { jsonStr := ` { "name": "J ......
字段 golang json path

使用golang写一个导出excel的接口

Crafted by [Genie](https://marketplace.visualstudio.com/items?itemName=genieai.chatgpt-vscode) You 使用golang写一个导出excel的接口 Genie 要创建一个使用Go语言编写的导出Excel文件 ......
接口 golang excel

Golang Gin 中间件

一.中间件 1 package main 2 3 import ( 4 "fmt" 5 "gin01/middlewares" 6 "text/template" 7 "time" 8 9 "github.com/gin-gonic/gin" 10 ) 11 12 /*** 13 中间件的注意事项: ......
中间件 Golang Gin

golang sort包应用

一、sort内置排序函数 函数 作用 func Float64s(x []float64) 对float64类型的切片进行升序排序 func Float64sAreSorted(x []float64) bool 判断float64类型切片x是否按升序排序 func Ints(x []int) 对i ......
golang sort