WorkerPool.js 386 B

1234567891011121314151617181920212223242526
  1. export class WorkerPool{
  2. constructor(){
  3. this.workers = {};
  4. }
  5. getWorker(url){
  6. if (!this.workers[url]){
  7. this.workers[url] = [];
  8. }
  9. if (this.workers[url].length === 0){
  10. let worker = new Worker(url);
  11. this.workers[url].push(worker);
  12. }
  13. let worker = this.workers[url].pop();
  14. return worker;
  15. }
  16. returnWorker(url, worker){
  17. this.workers[url].push(worker);
  18. }
  19. };