changeset 76:f20d2e9092de

backup 2021-07-13
author autobackup
date Tue, 13 Jul 2021 00:10:03 +0900
parents da704bfde095
children e7fad9d0486e
files user/matac42/note/2021/07/12/christie.md
diffstat 1 files changed, 40 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/user/matac42/note/2021/07/12/christie.md	Tue Jul 13 00:10:03 2021 +0900
@@ -0,0 +1,40 @@
+# 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が実行される
+
+