Mercurial > hg > Document > Growi
view user/matac42/note/2021/07/12/christie.md @ 76:f20d2e9092de
backup 2021-07-13
author | autobackup |
---|---|
date | Tue, 13 Jul 2021 00:10:03 +0900 |
parents | |
children |
line wrap: on
line source
# waitlist ![waitlist.svg](/attachment/60ebcd5e0a7b37004aefec1d) - waitlistはDGMが所持している - waitlistはDGMの数だけ存在する ### setup - どのような変数を持ったDGがあるかを読み取りwaitlistのqueueに入れる - Take or Peekが読み取られる - 「CGはDGの変数すべて揃わないと実行されない」という特性を実現するためにあらかじめ変数を読み取っておく - どういったCGがあるかはこの時点ではまだわからない - Commandとしてwaitlistにaddしていく感じ WaitList.java ```java public synchronized void add(Command cm) { if(waitList.containsKey(cm.key)){ waitList.get(cm.key).add(cm); } else { LinkedBlockingQueue<Command> queue = new LinkedBlockingQueue<>(); queue.add(cm); waitList.put(cm.key, queue); } } ``` - waitListに"hello"と"world"がaddされている ![スクリーンショット 2021-07-12 14.57.57.jpg](/attachment/60ebd9ee0a7b37004aefec29) (src/test/java/christie/example/HelloWorld) ### put - DGを入れる - 変数の値をセットする - putして変数の値が揃ったCGはrunCommand()でTake or Peekが実行される