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;
Ïà¹ØÎĵµ£º
1.LinuxÎļþϵͳ
¡¡¡¡Linux
Ö§
³Ö¶àÖÖÎļþϵͳ£¬Èçext¡¢ext2¡¢minix¡¢iso9660¡¢msdos¡¢fat¡¢vfat¡¢nfsµÈ¡£ÔÚÕâЩ¾ßÌåÎļþϵͳµÄÉϲ㣬LinuxÌṩ
ÁËÐéÄâÎļþϵͳ£¨VFS£©À´Í³Ò»ËüÃǵÄÐÐΪ£¬ÐéÄâÎļþϵͳΪ²»Í¬µÄÎļþϵͳÓëÄں˵ÄͨÐÅÌṩÁËÒ»ÖµĽӿڡ£ÏÂͼ¸ø³öÁËLinuxÖÐÎļþϵͳµÄ¹ØÏµ£º
¡¡¡¡ÔÚLinuxƽ̨϶ÔÎļþ±à³Ì¿É ......
ÓÃlinux C ϵĺ¯Êýµ÷Óô´½¨ÖÐÎÄĿ¼¡¢ÎļþµÈ£¬×Ö·û´®µÄ±àÂë¸ñʽҪÇóÊÇutf-8¸ñʽµÄ¡£
±ÈÈçÏëҪʹÓà int mkdir(const char *pathname, mode_t mode); ´´½¨Ò»¸öÖÐÎĵÄĿ¼¡£ÄÇôpathnameµÄ±àÂë¸ñʽҪÇóÊÇutf-8µÄ£¬¶ø²»ÄÜÊÇgb3212/gbkµÄ£¬·ñÔò¾ÍÊÇÂÒÂë¡£
ÄÇôÈç¹ûlinux CÏÂÈçºÎ½øÐÐgbk<---->utf-8±àÂëת»»µÄ±àÂë×°»»µÄ ......
Ò»¡¢malloc()ºÍfree()µÄ»ù±¾¸ÅÄîÒÔ¼°»ù±¾Ó÷¨
1¡¢º¯ÊýÔÐͼ°ËµÃ÷
void *malloc(long NumBytes)£º¸Ãº¯Êý·ÖÅäÁËNumBytes¸ö×Ö½Ú£¬²¢·µ»ØÁËÖ¸ÏòÕâ¿éÄÚ´æµÄÖ¸Õë¡£Èç¹û·ÖÅäʧ°Ü£¬Ôò·µ»ØÒ»¸ö¿ÕÖ¸Õ루NULL£©¡£ ¹ØÓÚ·ÖÅäʧ°ÜµÄÔÒò£¬Ó¦¸ÃÓжàÖÖ£¬±ÈÈç˵¿Õ¼ä²»×ã¾ÍÊÇÒ»ÖÖ¡£
void free(void *FirstByte)£º ¸Ãº¯ÊýÊǽ«Ö®Ç°ÓÃmalloc· ......
¹Ø¼ü×Ö£ºUTC£¨ÊÀ½ç±ê׼ʱ¼ä£©£¬Calendar Time£¨ÈÕÀúʱ¼ä£©£¬epoch£¨Ê±¼äµã£©£¬clock tick£¨Ê±ÖÓ¼ÆÊ±µ¥Ôª£©
1£®¸ÅÄî
ÔÚC/C++ÖУ¬¶Ô×Ö·û´®µÄ²Ù×÷ÓкܶàÖµµÃ×¢ÒâµÄÎÊÌ⣬ͬÑù£¬C/C++¶Ôʱ¼äµÄ²Ù×÷Ò²ÓÐÐí¶àÖµµÃ´ó¼Ò×¢ÒâµÄµØ·½¡£ÏÂÃæÖ÷Òª½éÉÜÔÚC/C++ÖÐʱ¼äºÍÈÕÆÚµÄʹÓ÷½·¨.
ͨ¹ýѧϰÐí¶àC/C++¿â£¬Äã¿ÉÒÔÓкܶà²Ù×÷¡¢Ê¹ÓÃʱ¼äµ ......
ÌâÄ¿£ºÊäÈëÒ»ÐÐ×Ö·û£¬·Ö±ðͳ¼Æ³öÆäÖÐÓ¢ÎÄ×Öĸ¡¢¿Õ¸ñ¡¢Êý×ÖºÍÆäËü×Ö·ûµÄ¸öÊý¡£
1.³ÌÐò·ÖÎö£ºÀûÓÃwhileÓï¾ä,Ìõ¼þΪÊäÈëµÄ×Ö·û²»Îª'\n'.
¡¡¡¡¡¡¡¡¡¡¡¡
2.³ÌÐòÔ´´úÂ룺
#include "stdio.h"
main()
{char c;
¡¡int letters=0,space=0,digit=0,others=0;
......