zoukankan      html  css  js  c++  java
  • semaphore

    import 'dart:async';
    import 'package:semaphore/semaphore.dart';
    
    Future<void> main() async {
      var maxCount = 3;
      var sm = new LocalSemaphore(maxCount);
      var tasks = <Future>[];
      for (var i = 0; i < 9; i++) {
        tasks.add(
            new Future(
                    () async {
                  try {
                    await sm.acquire();
                    print("Start $i, running $running");
                    await _doWork(1000);
                    print("End   $i, running $running");
                  } finally {
                    sm.release();
                  }
                }
            )
        );
      }
    
      await Future.wait(tasks);
      print("Max permits: $maxCount, max simultaneous runned: $simultaneous");
    }
    
    Future _doWork(int ms) {
      // Simulate work
      return new Future.delayed(new Duration(milliseconds: ms));
    }
    

      

    import 'dart:async';
    import 'package:semaphore/semaphore.dart';
    
    
    void main()async{
      var maxCount = 3;
      var sm = LocalSemaphore(maxCount);
      var tasks = <Future>[];
      
      for (int i=0; i<9; i++){
        tasks.add(manage(sm));
      }
    
      await Future.wait(tasks);
    }
    
    
    Future manage(LocalSemaphore sm)async{
      try {
        await sm.acquire();
        await doWork(1);
      } finally{
        sm.release();
      }
    }
    
    
    Future doWork(int ms){
      print('a');
      return Future.delayed(Duration(seconds: ms));
    }
    

      

  • 相关阅读:
    python之pymysql的使用
    python 之 Apollo
    python 之 RabbitMQ
    python之内置sqlite3
    pyQt5之2048小游戏
    VSCode 下载速度慢问题解决
    Redis 缓存穿透 + 缓存雪崩 + 缓存击穿的原因和解决方案
    部门优化
    Cpu_Limit.sh
    Autoback-xtraback.sh
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10634780.html
Copyright © 2011-2022 走看看