首页 > 编程语言 > 详细

golang多线程

时间:2021-05-30 20:04:15      阅读:28      评论:0      收藏:0      [点我收藏+]

gopkg.in/go-playground/pool.v3

package main

import (
	"fmt"
	"gopkg.in/go-playground/pool.v3"
	"time"
)


func newThreadFunc(p pool.Pool, value int) pool.WorkUnit {
	var fn pool.WorkFunc
	fn = func(pool.WorkUnit) (interface{}, error){
		time.Sleep(time.Second * 10)
		fmt.Println("Hello, this is %d.", value)
		return true, nil
	}
	return p.Queue(fn)
}

func main() {
	p := pool.NewLimited(5)
	defer p.Close()

	works := make([]pool.WorkUnit, 0)

	for i := 0; i < 20; i++ {
		works = append(works, newThreadFunc(p, i))
	}
	fmt.Println("Start!")
	for _, item := range works {
		item.Wait()
	}
}

golang多线程

原文:https://www.cnblogs.com/wxx999/p/14828699.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!