package main
import "fmt"
func Generate(ch chan<- int) {
for i := 2; ; i++ {
ch <- i
// fmt.Println(i)
}
}
func Filter(in <-chan int, out chan<- int, prime int) {
for {
i := <-in
if i%prime != 0 {
out <- i
}
}
}
func main() {
ch := make(chan int)
go Generate(ch)
for i := 0; i < 100; i++ {
prime := <-ch
fmt.Println(prime)
ch1 := make(chan int)
go Filter(ch, ch1, prime)
ch = ch1
}
}
一个有趣的质素算法,很有想法,很新颖,运用了多线程的方式,一个小Demo,如果要运用应该还要做一些修改,不过老外的想法确实很不错,不是单纯的写代码而写代码,会用Go的思想
去想代码,这是很有意思的