代码拉取完成,页面将自动刷新
package main
import (
"fmt"
"gitee.com/jianhaolin/gostl/ds/stack"
"sync"
"time"
)
func example1() {
fmt.Printf("example1:\n")
s := stack.New[int]()
s.Push(1)
s.Push(2)
s.Push(3)
for !s.Empty() {
fmt.Printf("%v\n", s.Pop())
}
}
// based on list
func example2() {
fmt.Printf("example2:\n")
s := stack.New(stack.WithListContainer[int]())
s.Push(1)
s.Push(2)
s.Push(3)
for !s.Empty() {
fmt.Printf("%v\n", s.Pop())
}
}
// goroutine-save
func example3() {
fmt.Printf("example3:\n")
s := stack.New(stack.WithGoroutineSafe[int]())
sw := sync.WaitGroup{}
sw.Add(2)
go func() {
defer sw.Done()
for i := 0; i < 10; i++ {
s.Push(i)
time.Sleep(time.Microsecond * 100)
}
}()
go func() {
defer sw.Done()
for i := 0; i < 10; {
if !s.Empty() {
val := s.Pop()
fmt.Printf("%v\n", val)
i++
} else {
time.Sleep(time.Microsecond * 100)
}
}
}()
sw.Wait()
}
func main() {
example1()
example2()
example3()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。