Download presentation

1
**New Go Programming Language by Google**

2
**Concurrent Programming**

3
Working Principle It works by taking a stream of all the natural numbers and introducing a sequence of filters one for each prime to winnow the multiples of that prime At each step we have a sequence of filters of the primes so far, and the next number to pop out is the next prime which triggers the creation of the next filter in the chain

4
Generate Function // Send the sequence 2, 3, 4, ... to channel 'ch'. Func generate(ch chan int) { for i := 2; ; i++ { ch <- i // Send 'i' to channel 'ch'. }

5
Filter Function func filter(in, out chan int, prime int) { for { i := <-in; // Receive value of new variable 'i' from 'in'. if i % prime != 0 { out <- i // Send 'i' to channel 'out'. }

6
Sieve Program func main() { ch := make(chan int); // Create a new channel. go generate(ch); // Start generate() as a goroutine. for { prime := <-ch; fmt.Println(prime); ch1 := make(chan int); go filter(ch, ch1, prime); ch = ch1 } }

Similar presentations

OK

Copyright 2012 & 2015 – Noah Mendelsohn A Brief Intro to the RPC Project Framework Noah Mendelsohn Tufts University

Copyright 2012 & 2015 – Noah Mendelsohn A Brief Intro to the RPC Project Framework Noah Mendelsohn Tufts University

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google