博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang atomic 32位机器问题
阅读量:6324 次
发布时间:2019-06-22

本文共 644 字,大约阅读时间需要 2 分钟。

hot3.png

测试过程中发现一个atomic.AddInt64()报内存错误 32位window,linux下都不能正常运行 示例代码: <!-- lang: cpp --> package main

import(	"fmt"	"sync/atomic")type item struct{	//c int32	d int32	a int64}type Obj struct{	list map[string]*item	}func (ob *Obj)Init(){	ob.list = make(map[string]*item)	ob.list["a"] = &item{}}func (ob *Obj)Add(){	atomic.AddInt64(&ob.list["a"].a,12)	fmt.Println(ob.list["a"].a)}func main(){	fmt.Println("Hello World")	 	obj := new(Obj)	obj.Init()    		fmt.Printf("%v\n",obj.list["a"])	obj.Add()	    	}

最终找到问题现象是,结构体item中 a 之前元素,必须是双数的int类型才能正常运行,去掉上面代码的注释行就能正常运行 估摸可能的原因与结构体初始化时,底层分配内存相关。 解决办法是暂时定义item时小心一些

转载于:https://my.oschina.net/yanhuu/blog/177752

你可能感兴趣的文章
男人要内在美,更要外在美
查看>>
为什么要跟别人比?
查看>>
app启动白屏
查看>>
Hadoop集群完全分布式安装
查看>>
QString,char,string之间赋值
查看>>
MySql之基于ssl安全连接的主从复制
查看>>
informix的逻辑日志和物理日志分析
查看>>
wordpress admin https + nginx反向代理配置
查看>>
centos 5.5 64 php imagick 模块错误处理记录
查看>>
apache中文url日志分析--php十六进制字符串转换
查看>>
浅谈代理
查看>>
基于jquery实现的超酷动画源码
查看>>
Factorialize a Number
查看>>
防HTTP慢速攻击的nginx安全配置
查看>>
Spring Boot2.0+中,自定义配置类扩展springMVC的功能
查看>>
参与博客编辑器改版,我的礼物 感谢51cto
查看>>
JavaWeb笔记——JSTL标签
查看>>
一些实用性的总结与纠正
查看>>
git回退到某个历史版本
查看>>
HTML5基础(二)
查看>>