1.Lockçawait/singal å Objectçwait/notify çåºå«
Lockçawait/singal å Objectçwait/notify çåºå«
Airtest源码脚本Lockçawait/singal å Objectçwait/notify çåºå«
Airtest源码脚本å¨ä½¿ç¨Lockä¹åï¼æ们é½ä½¿ç¨Object çwaitånotifyå®ç°åæ¥çã举ä¾æ¥è¯´ï¼ä¸ä¸ªproduceråconsumerï¼consumeråç°æ²¡æä¸è¥¿äºï¼çå¾ ï¼produerçæä¸è¥¿äºï¼å¤éã
Airtest源码脚本线ç¨consumer 线ç¨producer
Airtest源码脚本synchronize(obj){
Airtest源码脚本obj.wait();//没ä¸è¥¿äºï¼çå¾
Airtest源码脚本} synchronize(obj){
Airtest源码脚本obj.notify();//æä¸è¥¿äºï¼å¤é
Airtest源码脚本}
Airtest源码脚本æäºlockåï¼ä¸éåäºï¼ç°å¨æ¯ï¼
Airtest源码脚本lock.lock();
Airtest源码脚本condition.await();
Airtest源码脚本lock.unlock(); lock.lock();
Airtest源码脚本condition.signal();
Airtest源码脚本lock.unlock();
Airtest源码脚本为äºçªåºåºå«ï¼çç¥äºè¥å¹²ç»èãåºå«æä¸ç¹ï¼
Airtest源码脚本1. lockä¸åç¨synchronizeæåæ¥ä»£ç å è£ èµ·æ¥ï¼
Airtest源码脚本2. é»å¡éè¦å¦å¤ä¸ä¸ªå¯¹è±¡conditionï¼
Airtest源码脚本3. åæ¥åå¤éç对象æ¯conditionèä¸æ¯lockï¼å¯¹åºçæ¹æ³æ¯awaitåsignalï¼èä¸æ¯waitånotifyã
Airtest源码脚本为
Airtest源码脚本ä»ä¹éè¦ä½¿ç¨conditionå¢ï¼ç®åä¸å¥è¯ï¼lockæ´çµæ´»ã以åçæ¹å¼åªè½æä¸ä¸ªçå¾ éåï¼å¨å®é åºç¨æ¶å¯è½éè¦å¤ä¸ªï¼æ¯å¦è¯»ååã为äºè¿ä¸ªçµæ´»
Airtest源码脚本æ§ï¼lockå°åæ¥äºæ¥æ§å¶åçå¾ éåå离å¼æ¥ï¼äºæ¥ä¿è¯å¨æ个æ¶å»åªæä¸ä¸ªçº¿ç¨è®¿é®ä¸´çåºï¼lockèªå·±å®æï¼ï¼çå¾ éåè´è´£ä¿å被é»å¡ç线ç¨
Airtest源码脚本ï¼conditionå®æï¼ã
Airtest源码脚本éè¿æ¥çReentrantLockçæºä»£ç åç°ï¼conditionå ¶å®æ¯çå¾ éåçä¸ä¸ªç®¡çè ï¼conditionç¡®ä¿é»å¡ç对象æ顺åºè¢«å¤éã
Airtest源码脚本å¨Lockçå®ç°ä¸ï¼LockSupport被ç¨æ¥å®ç°çº¿ç¨ç¶æçæ¹åï¼åç»å°æ´è¿ä¸æ¥ç 究LockSupportçå®ç°æºå¶ã
Airtest源码脚本