āĻ¸ā§āĻŽāĻžāĻĢā§āĻ°
āĻ¸ā§āĻŽāĻžāĻĢā§āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻāĻ¨ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĨā§āĻ°ā§āĻĄā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¸ā§āĻŽāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻĒāĻĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻāĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ. āĻ¯āĻĻāĻŋ āĻāĻ° āĻŽāĻžāĻ¨ āĻļā§āĻ¨ā§āĻ¯ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤, āĻ¤āĻŦā§ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°āĻāĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻĒāĻžāĻŦā§āĨ¤
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻ¯āĻāĻ¨ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°āĻāĻŋ āĻļā§āĻ¨ā§āĻ¯ āĻĻā§āĻ¯āĻŧ, āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĨā§āĻ°ā§āĻĄāĻāĻŋ āĻ āĻŦāĻ°ā§āĻĻā§āĻ§ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸āĻāĻŋ āĻ āĻ¨ā§āĻ¯ āĻĨā§āĻ°ā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻ¨āĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻŦāĻž āĻ˛ā§āĻ¯āĻžāĻĒāĻāĻĒā§āĻ° āĻļāĻā§āĻ¤āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻĨāĻāĻāĻžāĻŦā§ āĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
public class Main {
public static void main(String[] args) {
Semaphore sem = new Semaphore(1);
CommonResource res = new CommonResource();
new Thread(new MyThread(res, sem, "MyThread_1")).start();
new Thread(new MyThread(res, sem, "MyThread_2")).start();
new Thread(new MyThread(res, sem, "MyThread_3")).start();
}
}
class CommonResource {
int value = 0;
}
class MyThread implements Runnable {
CommonResource commonResource;
Semaphore semaphore;
String name;
MyThread(CommonResource commonResource, Semaphore sem, String name) {
this.commonResource = commonResource;
this.semaphore = sem;
this.name = name;
}
public void run() {
try {
System.out.println(name + "waiting permission");
semaphore.acquire();
commonResource.value = 1;
for (int i = 1; i < 7; i++) {
System.out.println(this.name + ": " + commonResource.value);
commonResource.value++;
Thread.sleep(150);
}
} catch (InterruptedException e) {
System.out.println(e.getMessage() + " " + name);
Thread.currentThread().interrupt();
}
System.out.println(name + "releases permission");
semaphore.release();
}
}
CountDownLatch āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯
CountDownLatch - āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĨā§āĻ°ā§āĻĄā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻāĻžāĻ§āĻŋāĻ āĻĨā§āĻ°ā§āĻĄāĻā§ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨: āĻāĻāĻŋ āĻļā§āĻ°ā§ āĻšāĻŦā§ āĻ¨āĻž āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻļāĻ°ā§āĻ¤āĻžāĻŦāĻ˛ā§ āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻŦā§āĻ¨ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻāĻžāĻāĻ¨ā§āĻāĻĄāĻžāĻāĻ¨() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§- āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻāĻ¨ā§āĻ āĻĄāĻžāĻāĻ¨ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°āĻā§ āĻāĻ āĻāĻ°ā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĨ¤
āĻ¯āĻ¤ āĻ¤āĻžāĻĄāĻŧāĻžāĻ¤āĻžāĻĄāĻŧāĻŋ āĻāĻŖāĻ¨āĻž āĻļā§āĻ¨ā§āĻ¯ā§ āĻāĻ˛ā§ āĻ¯āĻžāĻŦā§, āĻ āĻĒā§āĻā§āĻˇāĻžāĻ¯āĻŧ āĻĨāĻžāĻāĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻĒā§āĻā§āĻˇāĻŽāĻžāĻŖ āĻĨā§āĻ°ā§āĻĄāĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§ āĻāĻŦāĻ āĻ āĻĒā§āĻā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ˛āĻā§āĻ˛āĻŋ āĻ āĻĒā§āĻā§āĻˇāĻž āĻ¨āĻž āĻāĻ°ā§āĻ āĻāĻ˛ā§ āĻ¯āĻžāĻŦā§āĨ¤ āĻāĻžāĻāĻ¨ā§āĻ āĻĄāĻžāĻāĻ¨ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻāĻāĻāĻŋ āĻāĻāĻāĻžāĻ˛ā§āĻ¨ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻžāĨ¤
CyclicBarrier - āĻāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻĨā§āĻ°ā§āĻĄ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻāĻ¨ N āĻĨā§āĻ°ā§āĻĄ await(...) āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻāĻ˛ āĻāĻ°ā§ āĻāĻŦāĻ āĻŦā§āĻ˛āĻ āĻāĻ°ā§ āĻ¤āĻāĻ¨ āĻŦāĻžāĻ§āĻž āĻĒā§āĻāĻā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°āĻāĻŋ āĻ¤āĻžāĻ° āĻāĻ¸āĻ˛ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ āĻĒā§āĻā§āĻˇāĻžāĻ° āĻĨā§āĻ°ā§āĻĄāĻā§āĻ˛āĻŋ āĻŽā§āĻā§āĻ¤āĻŋ āĻĒāĻžāĻŦā§āĨ¤ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤āĻāĻžāĻŦā§, āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ˛ā§, āĻĨā§āĻ°ā§āĻĄ āĻāĻ¨āĻŦā§āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻŦāĻ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻžāĻ¸ā§āĻāĻŽ āĻā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ°āĻžāĻ¨ā§āĻŦāĻ˛ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻāĨ¤
āĻāĻā§āĻ¸āĻā§āĻā§āĻāĻžāĻ°<V> â āĻāĻā§āĻ¸āĻā§āĻā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸āĻāĻŋ āĻĨā§āĻ°ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄā§āĻāĻž āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§āĨ¤ āĻāĻāĻŋ āĻāĻžāĻāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĨā§āĻ°ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻāĻĻāĻžāĻ¨-āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻāĻ°ā§āĨ¤
āĻāĻ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧ() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĄā§āĻāĻž āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧ :
V exchange(V x) throws InterruptedException
V exchange(V x, long timeout, TimeUnit unit) throws InterruptedException, TimeoutException
āĻāĻā§āĻ¸ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧ āĻāĻ°āĻž āĻĄā§āĻāĻž āĻŦāĻžāĻĢāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§āĨ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĢāĻ°ā§āĻŽāĻāĻŋ āĻāĻžāĻāĻŽāĻāĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° , āĻāĻžāĻāĻŽāĻāĻāĻ āĻāĻŦāĻ āĻāĻāĻ¨āĻŋāĻ , āĻāĻžāĻāĻŽāĻāĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻāĻŽ āĻāĻāĻ¨āĻŋāĻā§āĻ° āĻ§āĻ°āĻŖāĻā§āĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĨ¤
Phaser āĻā§āĻ˛āĻžāĻ¸ āĻāĻĒāĻ¨āĻžāĻā§ āĻĨā§āĻ°ā§āĻĄāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻĢā§āĻ āĻŦāĻž āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§āĨ¤ Phaser āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ āĻ āĻŦāĻā§āĻā§āĻāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĢā§āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤ Phaser āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻŦāĻž āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŦāĻžāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤
Phaser āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ , āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻŋāĻ° āĻ āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, register() āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ, āĻ āĻĨāĻŦāĻž āĻāĻĒāĻ¨āĻŋ Phaser āĻāĻ¨ā§āĻ¸āĻā§āĻ°āĻžāĻā§āĻāĻ°ā§āĻ° āĻāĻžāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻāĻā§āĻ¯āĻ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĒāĻžāĻ¸ āĻāĻ°ā§ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻžāĻĄāĻŧāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻĢā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻāĻŦāĻ Phaser āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻāĻžāĻ° āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻ°āĻž āĻĢā§āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°ā§āĨ¤ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻāĻžāĻ°āĻā§ āĻāĻžāĻ¨āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§ āĻĢā§āĻāĻāĻŋ āĻļā§āĻˇ āĻšāĻ¯āĻŧā§āĻā§, āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻĒā§āĻāĻāĻžāĻ¤ā§ āĻšāĻŦā§ () āĻŦāĻž welcomeAndAwaitAdvance() āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĨ¤ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻāĻžāĻ° āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤