c Ö¸ÕëʵÏÖÃæÏò¶ÔÏó
Ö¸ÕëÊÇCµÄÁé»ê£¬ÕýÊÇÖ¸ÕëʹµÃC´æÔÚÁËÕâô¶àÄ꣬¶øÇÒ½«³¤ÆÚ´æÔÚÏÂÈ¥¡£ÊÂʵÉÏ£¬ÎÒ×Ô¼º²»ÓÃCÓïÑÔд³ÌÐòÒѾÓÐÒ»ÄêÁË£¬¹¤×÷ÖнӴ¥µ½µÄÖ»ÓÐjava£¬pythonºÍjavascript.×î½üÓÃCÍê³ÉÁËÒ»ÏÂÀàËÆÓÚOOÖеķâ×°£¨¼´"Àà"£©µÄ¸ÅÄ˳±ã°ÑÖ¸Õ븴ϰÁËÏ£¬¸Ð¾õÓбØÒª¼Çһϡ£
±¾ÎÄÖеÄÀý×ÓÓÐÕâÑùÁ½¸ö¸ÅÄÈÎÎñ£¨Task£©£¬Ö´ÐÐÆ÷£¨Executor£©¡£ÈÎÎñÓÐÃû³Æ£¨taskName£©£¬²¢ÇÒ¿ÉÒÔÖ´ÐУ¨execute£©¡£ ¶øÖ´ÐÐÆ÷Óë¾ßÌåÈÎÎñËùÖ´ÐеÄÄÚÈÝÎ޹أ¬Ö»Êǻص÷£¨callback£©ÈÎÎñµÄÖ´Ðз½·¨£¬ÕâÑùÎÒÃǵÄÖ´ÐÐÆ÷¾Í¿ÉÒÔ×öµÄ±È½ÏͨÓ᣶øÈÎÎñ½Ó¿ÚÖ»ÐèҪʵÏÖÒ»¸öexecute·½·¨¼´¿É£¬ÕâÑùÎÒÃǵÄÈÎÎñ¾Í¿ÉÒÔÊǶàÖÖ¶àÑùµÄ£¬¿ÉÒÔͨ¹ýͳһµÄ½Ó¿Úset¸øÖ´ÐÐÆ÷Ö´ÐС£ÕâÊÇÃæÏò¶ÔÏóÖлù±¾µÄ˼Ï룬ҲÊDZȽϳ£ÓõijéÏó·½Ê½¡£ÏÂÃæÎÒÃǾßÌå¿´ÏÂÀý×Ó¡£
¿ÉÒÔÏëÏó£¬mainº¯Êý´ó¸ÅÊÇÕâ¸öÑù×Ó£º
int¡¡main(int¡¡argc,¡¡char**¡¡argv)¡¡{
¡¡¡¡¡¡¡¡Task¡¡*t1¡¡=¡¡TaskConstruction("Task1",¡¡run);//´Ë´¦µÄrunÊÇÒ»¸öº¯ÊýÖ¸Õë
¡¡¡¡¡¡¡¡Executor¡¡*exe¡¡=¡¡ExecutorConstruction();
¡¡¡¡¡¡¡¡exe->setTask(t1);
¡¡¡¡¡¡¡¡exe->begin();
¡¡¡¡¡¡¡¡exe->cancel();
¡¡¡¡¡¡¡¡Task¡¡*t2¡¡=¡¡TaskConstruction("Task2",¡¡run2);//´Ë´¦µÄrun2Ò²ÊÇÒ»¸öº¯ÊýÖ¸Õ룬ÓÃÓÚ¹¹ÔìÒ»¸öTask.
¡¡¡¡¡¡¡¡exe->setTask(t2);
¡¡¡¡¡¡¡¡exe->begin();
¡¡¡¡¡¡¡¡exe->cancel();
¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡(EXIT_SUCCESS);
}
ÔËÐнá¹ûΪ£º
task¡¡:¡¡[Task1]¡¡is¡¡ready¡¡to¡¡run
[a¡¡=¡¡1.200000,¡¡b¡¡=¡¡2.300000]
[(a¡¡+¡¡b)¡¡*¡¡(a¡¡-¡¡b)¡¡=¡¡-3.850000]
cancel¡¡is¡¡invoked¡¡here
task¡¡:¡¡[Task2]¡¡is¡¡ready¡¡to¡¡run
another¡¡type¡¡of¡¡execute,just¡¡print¡¡out¡¡some¡¡information
cancel¡¡is¡¡invoked¡¡here
ºÃÁË£¬ÏÂÃæÏêϸ¿´¿´ÊµÏÖ£º
¶¨Òå½Ó¿Ú
Ê×ÏÈ£¬¶¨ÒåTaskºÍExecutorÁ½¸öʵÌåµÄ½Ó¿Ú£º
Task½Ó¿Ú£¬×¢ÒâÆäÖеÄ_this×ֶΣ¬Õâ¸öÖ¸ÕëÔÚºó±ßÓкÜÖØÒªµÄ×÷Óã¬ÓÃÓÚholdÕû¸öTaskµÄʵÀý¡£È»ºóÊÇÒ»¸ötaskNameµÄ×Ö·û´®£¬ºÍÒ»¸öº¯ÊýÖ¸Õ룬Õâ¸öÖ¸ÕëÔÚ³õʼ»¯£¨¹¹Ô죩Taskʱ´«Èë¡£Õâ¸öexecute£¨£©º¯Êý±È½ÏÓÐÒâ˼£¬Ëü²»ÔÚÄÚ²¿Ê¹Ó㬶øÊÇÈÃÖ´ÐÐÆ÷»Øµ÷Ö´Ðеġ£
#ifndef¡¡_ITASK_H
#define¡¡¡¡¡¡¡¡_ITASK_H
typedef¡¡struct¡¡Task{
¡¡¡¡¡¡¡¡struct¡¡Task¡¡*_this;
Ïà¹ØÎĵµ£º
Ò»¸öµäÐ͵ÄC³ÌÐò´æ´¢¿Õ¼ä²¼¾ÖÓÉÒÔϼ¸¸ö²¿·Ö×é³É£º
ÕýÎĶΣºCPUÖ´ÐеÄÖ¸Á·Ö£¬Ò²¾ÍÊÇÖ÷ÒªµÄ³ÌÐò´úÂë±àÒë³öÀ´µÄ½á¹û£¬Ö»¶Á£¬Í¨³£¿ÉÒÔ¹²Ïí¡£
³õʼ»¯Êý¾Ý¶Î£ºÍ¨³£³Æ֮ΪÊý¾Ý¶Î£¬°üº¬Á˳ÌÐòÖÐÐèÒªÃ÷È·¸³ÖµµÄ±äÁ¿£¬Æ©ÈçһЩ³õʼ»¯µÄÈ«¾Ö±äÁ¿µÈ£¬Èç int a = 10£¬±äÁ¿ÃûºÍÖµ¶¼´æ·ÅÔÚÕâ ......
C++µÄÀàÓëCÀïÃæµÄstructµÄÇø±ð
2009-10-11 15:32
¹ØÓÚʹÓôóÀ¨ºÅ³õʼ»¯
classºÍstructÈç¹û¶¨ÒåÁ˹¹Ô캯ÊýµÄ»°£¬¶¼²»ÄÜÓôóÀ¨ºÅ½øÐгõʼ»¯
Èç¹ûûÓж¨Òå¹¹Ô캯Êý£¬struct¿ÉÒÔÓôóÀ¨ºÅ³õʼ»¯¡£
Èç¹ûûÓж¨Òå¹¹Ô캯Êý£¬ÇÒËùÓгÉÔ±±äÁ¿È«ÊÇpublicµÄ»°£¬¿ÉÒÔÓôóÀ¨ºÅ³õʼ»¯¡£
¹ØÓÚĬÈÏ·ÃÎÊȨÏÞ
classÖÐĬÈϵijÉÔ±·ÃÎÊÈ ......
µ±½ñÊÀ½ç¿Æѧ¼¼Êõ·ÉËÙ·¢Õ¹£¬ÓÈÆäÒÔͨÐÅ¡¢¼ÆËã»ú¡¢ÍøÂçΪ´ú±íµÄ»¥ÁªÍø¼¼Êõ¸üÊÇÈÕÐÂÔÂÒ죬ÁîÈËÑÛ»¨ÁÇÂÒ£¬Ä¿²»睱½Ó¡£ÓÉÓÚ¼ÆËã»ú»¥ÁªÍøÔÚÕþÖΡ¢¾¼Ã¡¢Éú»îµÈ¸÷¸öÁìÓòµÄ·¢Õ¹¡¢ÔËÓÃÒÔ¼°ÍøÂçµÄѸËÙÆÕ¼°ºÍÈ«Éç»á¶ÔÍøÂçµÄÒÀÀµ³Ì¶È£¬¼ÆËã»úÍøÂçÒѾ³ÉΪ¹ú¼ÒµÄ¾¼Ã»ù´¡ºÍÃüÂö£¬³ÉΪÉç»áºÍ¾¼Ã·¢Õ¹Ç¿´ó¶¯Á¦£¬ÆäµØλԽÀ´Ô½ÖØÒª¡£µ« ......
ÔÚANSI CÖУ¬¶ÔÎļþµÄ²Ù×÷·ÖΪÁ½ÖÖ·½Ê½£¬¼´Á÷ʽÎļþ²Ù×÷ºÍI/OÎļþ²Ù×÷£¬ÏÂÃæ¾Í·Ö±ð½éÉÜÖ®¡£
Ò»¡¢Á÷ʽÎļþ²Ù×÷
¡¡¡¡ÕâÖÖ·½Ê½µÄÎļþ²Ù×÷ÓÐÒ»¸öÖØÒªµÄ½á¹¹FILE£¬FILEÔÚstdio.hÖж¨ÒåÈçÏ£º
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File des ......
Android±àÒë»·¾³±¾Éí±È½Ï¸´ÔÓ£¬ÇÒ²»ÏñÆÕͨµÄ±àÒë»·¾³£ºÖ»Óж¥²ãĿ¼Ï²ÅÓÐMakefileÎļþ£¬¶øÆäËûµÄÿ¸öcomponent¶¼Ê¹ÓÃͳһ±ê×¼µÄ
Android.mk.
Android.mkÎļþ±¾ÉíÊDZȽϼòµ¥µÄ£¬²»¹ýËü²¢²»ÊÇÎÒÃÇÊìϤµÄMakefile£¬¶øÊǾ¹ýÁËAndroid×ÔÉí±àÒëϵͳµÄºÜ¶à´¦Àí£¬Òò´ËÒªÕæÕýÀíÇå
³þÆäÖеÄÁªÏµ»¹±È½Ï¸´ÔÓ£¬² ......