11.1.1 go轻松开启100万个协程

  1. package main
  2. import (
  3. "fmt"
  4. "sync"
  5. "time"
  6. )
  7. var wx sync.WaitGroup
  8. func main() {
  9. for i:=0; i < 1000000; i++ {
  10. wx.Add(1)
  11. go func(i int){
  12. defer wx.Done()
  13. for {
  14. fmt.Println(i)
  15. time.Sleep(time.Second*1)
  16. }
  17. }(i)
  18. }
  19. wx.Wait()
  20. }

11.1.2 python起送开启100万个协程

  1. import asyncio
  2. import time
  3. async def say_after(index):
  4. while 1:
  5. await asyncio.sleep(1)
  6. print(index)
  7. tasks = []
  8. async def main():
  9. print(f"started at {time.strftime('%X')}")
  10. for i in range(1000000):
  11. tasks.append(asyncio.create_task(say_after(i)))
  12. # await say_after(2, 'world')
  13. await asyncio.gather(*tasks)
  14. asyncio.run(main())