Слияние кода завершено, страница обновится автоматически
package pool_test
import (
"testing"
"pool"
"fmt"
"time"
)
//这里使用了一个很笨的办法期望通过时间来观察goroutine开启的情况
func TestNewPool(t *testing.T) {
w := pool.NewTask(func() error { fmt.Println(time.Now());return nil })
//tasks := []*pool.Worker{}
//for i:=0;i<10 ;i++ {
// tasks = append(tasks,w)
//}
//p := pool.NewPool(tasks,3)
p := pool.NewPool(3)
//这里启用另外一个goroutine向worker当中写入,不然会出现all goroutines are asleep,需要从管道中获得一个数据,而这个数据必须是其他goroutine线放入管道的
go func() {
for {
p.Worker <- w
}
}()
p.Run()
}
func TestSe(t *testing.T) {
a := make(chan int)
var i int
go func() {
for {
i++
a <- i
}
}()
for {
fmt.Println(<-a)
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )