Go语言interface的小技巧

package main

import (
	"container/list"
	"fmt"
	"os"
	"sync"
	"time"
)

type INFO struct {
	lock sync.Mutex
	Name string
	Time int64
}

var List *list.List = list.New()

func main() {
	var Info INFO
	go func() {
		time.Sleep(1e9 * 30)
		os.Exit(1)
	}()
	go func() {
		for i := 0; i < 100; i++ {
			time.Sleep(1e8)
			Info.lock.Lock()
			Info.Name = fmt.Sprint("Name", i)
			Info.Time = time.Now().Unix()
			Info.lock.Unlock()
			List.PushBack(Info)
		}
	}()
	go Getgoods()
	select {}
}

func Getgoods() {
	time.Sleep(1e9)
	for List.Len() > 0 {
		if N, T := List.Remove(List.Front()).(INFO).name(); time.Now().Unix()-T >= 1 {
			fmt.Println(N)
		}
	}
	Getgoods()
}

func (i INFO) name() (string, int64) {
	return i.Name, i.Time
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 08:14:40

Go语言interface的小技巧的相关文章

学习汇编的第一天,简单看了一下这门语言的一些小技巧

我的原创:Windows环境下32位汇编语言是一种全新的编程语言.它使用与C++语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式.本书从编写应用程序的角度,从"Hello World!"这个简单的例子开始到编写多线程.注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面.本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程网站和汇编编程论坛qanda.ren的站长.本书是作者多年来编程工作的总结,适合于欲通过Win3

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧 最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系.而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过

xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系.而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过单个或很少的几个(关于这点稍后会进行展开)文件构建全部UI.应该使用哪种方式来制作UI已经是iOS开发中

C语言打印输出,scanf使用注意事项,小技巧

 今天看一帖子,赵忠大哥的回复挺经典也很有用,记录下来! 1.在每个最后不带\n的printf后面加fflush(stdout); 2.在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);另外请检查scanf的返回值. 3.在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常运行的问题. C语言打印输出,scanf使用注意事项,小技巧

iOS开发中的那些小技巧

一,前言 看到这个图,你会想起谁?是不是想起了,曾经的用户名输入框,密码输入框... 那么,问题来了:作为iOS开发的你,这个输入框你是怎么实现的,成为关键. 二,方案 方案1:弄一个UIView,在这个视图上分别放三个控件:UIImageView,UILabel与UITextField.(这个方案很直接,如果你只是简单的直接将三个控件放到视图上,那么你的月薪暴露了,最多3K.如果你是对这个视图重写了,将那三个控件封装起来了,放在.h文件,那你的月薪应该是3.5K,如果是将那三个控件放到.m文件

( 译、持续更新 ) JavaScript 上分小技巧(二)

考虑到文章过长,不便于阅读,这里分出第二篇,如有后续,每15个知识点分为一篇... #29 - 使用缓存的记忆让递归函数加速运行波非那切数列(Fibonacci sequence)想必大家都不陌生(针对学霸而言,在这之前本兽完全不知道这是个什么鬼,虽然经常会用到递归),我们可以在20秒内写出以下的函数: var fibonacci = function(n){ return n < 2 ? n : fibonacci(n-1) + fibonacci(n-2); } 它确实是运行了,但是效率并不

15. Go 语言“避坑”与技巧

Go 语言"避坑"与技巧 任何编程语言都不是完美的,Go 语言也是如此.Go 语言的某些特性在使用时如果不注意,也会造成一些错误,我们习惯上将这些造成错误的设计称为"坑". Go 语言的一些设计也具有与其他编程语言不一样的特性,能优雅.简单.高效地解决一些其他语言难以解决的问题. 本章将会对 Go 语言设计上可能发生错误的地方及 Go 语言本身的使用技巧进行总结和归纳. goroutine(Go语言并发)如何使用才更加高效? Go语言原生支持并发是被众人津津乐道的特

思科命令配置小技巧三:alias 命令

大家都用过手机上的快捷拨号设置 思科设备是否支持命令的快捷键定义呢 答案是肯定的 suzhouxiaoniu(config)#alias exec xx show ip inter bri  xx是自定义的快捷键名称,可以是数字 suzhouxiaoniu#xx 直接敲定义好的名称Interface                  IP-Address      OK? Method Status                ProtocolFastEthernet1/0          

ACM 刷题小技巧【转】

转载自URl-team ACM做题过程中的一些小技巧. 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 大数据输入输出时最好不要用cin.cout,防止超时. 2.有时候int型不够用,可以用long long或__int64型(两个下划线__). 值类型表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,807 )之间的整数.