ÅÅÐòËã·¨ÊÇÒ»ÖÖ»ù±¾²¢ÇÒ³£ÓõÄËã·¨¡£ÓÉÓÚʵ¼Ê¹¤×÷Öд¦ÀíµÄÊýÁ¿¾Þ´ó£¬ËùÒÔÅÅÐòËã·¨¶ÔËã·¨±¾ÉíµÄËÙ¶ÈÒªÇóºÜ¸ß¡£
¶øÒ»°ãÎÒÃÇËùνµÄËã·¨µÄÐÔÄÜÖ÷ÒªÊÇÖ¸Ëã·¨µÄ¸´ÔÓ¶È£¬Ò»°ãÓÃO·½·¨À´±íʾ¡£ÔÚºóÃæÎÒ½«¸ø³öÏêϸµÄ˵Ã÷¡£
¶ÔÓÚÅÅÐòµÄËã·¨ÎÒÏëÏÈ×öÒ»µã¼òµ¥µÄ½éÉÜ£¬Ò²ÊǸøÕâÆªÎÄÕÂÀíÒ»¸öÌá¸Ù¡£
ÎÒ½«°´ÕÕËã·¨µÄ¸´ÔÓ¶È£¬´Ó¼òµ¥µ½ÄÑÀ´·ÖÎöËã·¨¡£
µÚÒ»²¿·ÖÊǼòµ¥ÅÅÐòËã·¨£¬ºóÃæÄ㽫¿´µ½ËûÃǵĹ²Í¬µãÊÇËã·¨¸´ÔÓ¶ÈΪO(N*N)£¨ÒòΪûÓÐʹÓÃword,ËùÒÔÎÞ·¨´ò³öÉϱêºÍϱ꣩¡£
µÚ¶þ²¿·ÖÊǸ߼¶ÅÅÐòËã·¨£¬¸´ÔÓ¶ÈΪO(Log2(N))¡£ÕâÀïÎÒÃÇÖ»½éÉÜÒ»ÖÖËã·¨¡£ÁíÍ⻹Óм¸ÖÖËã·¨ÒòÎªÉæ¼°Ê÷Óë¶ÑµÄ¸ÅÄËùÒÔÕâÀï²»ÓÚÌÖÂÛ¡£
µÚÈý²¿·ÖÀàËÆ¶¯ÄԽÕâÀïµÄÁ½ÖÖËã·¨²¢²»ÊÇ×îºÃµÄ£¨ÉõÖÁÓÐ×îÂýµÄ£©£¬µ«ÊÇËã·¨±¾Éí±È½ÏÆæÌØ£¬ÖµµÃ²Î¿¼£¨±à³ÌµÄ½Ç¶È£©¡£Í¬Ê±Ò²¿ÉÒÔÈÃÎÒÃÇ´ÓÁíÍâµÄ½Ç¶ÈÀ´ÈÏʶÕâ¸öÎÊÌâ¡£
µÚËIJ¿·ÖÊÇÎÒË͸ø´ó¼ÒµÄÒ»¸ö²ÍºóµÄÌðµã——Ò»¸ö»ùÓÚÄ£°åµÄͨÓÿìËÙÅÅÐò¡£ÓÉÓÚÊÇÄ£°åº¯Êý¿ÉÒÔ¶ÔÈκÎÊý¾ÝÀàÐÍÅÅÐò£¨±§Ç¸£¬ÀïÃæÊ¹ÓÃÁËһЩÂÛ̳ר¼ÒµÄÄØ³Æ£©¡£
&n ......
ÅÅÐòËã·¨ÊÇÒ»ÖÖ»ù±¾²¢ÇÒ³£ÓõÄËã·¨¡£ÓÉÓÚʵ¼Ê¹¤×÷Öд¦ÀíµÄÊýÁ¿¾Þ´ó£¬ËùÒÔÅÅÐòËã·¨¶ÔËã·¨±¾ÉíµÄËÙ¶ÈÒªÇóºÜ¸ß¡£
¶øÒ»°ãÎÒÃÇËùνµÄËã·¨µÄÐÔÄÜÖ÷ÒªÊÇÖ¸Ëã·¨µÄ¸´ÔÓ¶È£¬Ò»°ãÓÃO·½·¨À´±íʾ¡£ÔÚºóÃæÎÒ½«¸ø³öÏêϸµÄ˵Ã÷¡£
¶ÔÓÚÅÅÐòµÄËã·¨ÎÒÏëÏÈ×öÒ»µã¼òµ¥µÄ½éÉÜ£¬Ò²ÊǸøÕâÆªÎÄÕÂÀíÒ»¸öÌá¸Ù¡£
ÎÒ½«°´ÕÕËã·¨µÄ¸´ÔÓ¶È£¬´Ó¼òµ¥µ½ÄÑÀ´·ÖÎöËã·¨¡£
µÚÒ»²¿·ÖÊǼòµ¥ÅÅÐòËã·¨£¬ºóÃæÄ㽫¿´µ½ËûÃǵĹ²Í¬µãÊÇËã·¨¸´ÔÓ¶ÈΪO(N*N)£¨ÒòΪûÓÐʹÓÃword,ËùÒÔÎÞ·¨´ò³öÉϱêºÍϱ꣩¡£
µÚ¶þ²¿·ÖÊǸ߼¶ÅÅÐòËã·¨£¬¸´ÔÓ¶ÈΪO(Log2(N))¡£ÕâÀïÎÒÃÇÖ»½éÉÜÒ»ÖÖËã·¨¡£ÁíÍ⻹Óм¸ÖÖËã·¨ÒòÎªÉæ¼°Ê÷Óë¶ÑµÄ¸ÅÄËùÒÔÕâÀï²»ÓÚÌÖÂÛ¡£
µÚÈý²¿·ÖÀàËÆ¶¯ÄԽÕâÀïµÄÁ½ÖÖËã·¨²¢²»ÊÇ×îºÃµÄ£¨ÉõÖÁÓÐ×îÂýµÄ£©£¬µ«ÊÇËã·¨±¾Éí±È½ÏÆæÌØ£¬ÖµµÃ²Î¿¼£¨±à³ÌµÄ½Ç¶È£©¡£Í¬Ê±Ò²¿ÉÒÔÈÃÎÒÃÇ´ÓÁíÍâµÄ½Ç¶ÈÀ´ÈÏʶÕâ¸öÎÊÌâ¡£
µÚËIJ¿·ÖÊÇÎÒË͸ø´ó¼ÒµÄÒ»¸ö²ÍºóµÄÌðµã——Ò»¸ö»ùÓÚÄ£°åµÄͨÓÿìËÙÅÅÐò¡£ÓÉÓÚÊÇÄ£°åº¯Êý¿ÉÒÔ¶ÔÈκÎÊý¾ÝÀàÐÍÅÅÐò£¨±§Ç¸£¬ÀïÃæÊ¹ÓÃÁËһЩÂÛ̳ר¼ÒµÄÄØ³Æ£©¡£
&n ......
ͨÓú¯Êý¿âÔÚÍ·Îļþstdlib.hÖÐÉùÃ÷£¬±È½ÏÅÓ´ó£¬Ö÷Òª·ÖΪÒÔϼ¸´óÀࣺ´æ´¢·ÖÅä¡¢Ëæ»úÊýÉú³É¡¢Êý×Öת»»ÓëÕûÐÍÔËËã¡¢³ÌÐòÍ˳öÓë»·¾³Í¨ÐÅ¡¢ËÑË÷ÓëÅÅÐò¡¢¶à×Ö½ÚÓë¿í×Ö·ûµÄת»»¡£ÓÉÓÚ¼³¼°µ½´æ´¢·ÖÅä¡¢»·¾³Í¨Ðŵȣ¬Òò´ËËüÃǵĴó¶àÊýÒ²ÒÀÀµÓÚ²Ù×÷ϵͳ¡£glibcÖУ¬Í¨Óú¯Êý¿âµÄºËÐÄʵÏÖÔÚstdlibºÍmallocÁ½¸öĿ¼Ï¡£
stdlib.hÖе¼³öµÄËùÓбê×¼½Ó¿ÚÈçÏ£º
1¡¢malloc,calloc,realloc,free£ºÄÚ´æ·ÖÅäÓëÊÍ·Å¡£·ÖÅäµÄÄÚ´æ²»½øÐÐÈκγõʼ»¯£¬±£Ö¤¶ÔÈκÎÊý¾ÝÀàÐÍÕýÈ·¶ÔÆë
2¡¢rand,srand,RAND_MAX£º²úÉúÎ±Ëæ»úÊý£¬rand·¶Î§µÄÉÏÏÞÓÉRAND_MAXÖ¸¶¨£¬ÖÁÉÙΪ32767
3¡¢atof,atoi,atol,atoll£º½«×Ö·û´®µÄ³õʼ²¿·Öת»»³ÉÏàÓ¦ÀàÐ͵ÄÊý×Ö¡£
4¡¢strtod,strtof,strtold,strtol,strtoll,strtoul,strtoull£ºÍ¬ÉÏ£¬µ«±ÈÉÏÃæµÄת»»º¯Êý¸üÍêÉÆ¡£Êµ¼ÊÉÏglibcÖУ¬ÉÏÃæµÄ¼¸¸öת»»º¯Êý¶¼ÊÇÖ±½Óµ÷ÓÃÕâÀïµÄº¯ÊýÀ´ÊµÏֵġ£
5¡¢abort,atexit,exit,_Exit,EXIT_FAILURE,EXIT_SUCCESS£ºÖÕÖ¹³ÌÐò¡£exitÔÚÖÕֹǰ»áµ÷ÓÃÓÃatexit×¢²áµÄ¸÷¸öº¯Êý£¬¶øabortºÍ_E ......
CÊÇÒ»¸ö½á¹¹»¯ÓïÑÔ£¬ÈçÌ·ÀÏÒ¯×ÓËù˵£ºËüµÄÖØµãÔÚÓÚËã·¨ºÍÊý¾Ý½á¹¹¡£C³ÌÐòµÄÉè¼ÆÊ×Òª¿¼ÂǵÄÊÇÈçºÎͨ¹ýÒ»¸ö¹ý³Ì£¬¶ÔÊäÈ루»ò»·¾³Ìõ¼þ£©½øÐÐÔËËã´¦ÀíµÃµ½Êä³ö£¨»òʵÏÖ¹ý³Ì£¨ÊÂÎñ£©¿ØÖÆ£©£¬¶ø¶ÔÓÚC++£¬Ê×Òª¿¼ÂǵÄÊÇÈçºÎ¹¹ÔìÒ»¸ö¶ÔÏóÄ£ÐÍ£¬ÈÃÕâ¸öÄ£ÐÍÄܹ»ÆõºÏÓëÖ®¶ÔÓ¦µÄÎÊÌâÓò£¬ÕâÑù¾Í¿ÉÒÔͨ¹ý»ñÈ¡¶ÔÏóµÄ״̬ÐÅÏ¢µÃµ½Êä³ö»òʵÏÖ¹ý³Ì£¨ÊÂÎñ£©¿ØÖÆ¡£
ËùÒÔCÓëC++µÄ×î´óÇø±ðÔÚÓÚËüÃǵÄÓÃÓÚ½â¾öÎÊÌâµÄ˼Ïë·½·¨²»Ò»Ñù¡£Ö®ËùÒÔ˵C++±ÈC¸üÏȽø£¬ÊÇÒòΪ“ Éè¼ÆÕâ¸ö¸ÅÄîÒѾ±»ÈÚÈëµ½C++Ö®ÖÐ ”£¬¶ø¾ÍÓïÑÔ±¾Éí¶øÑÔ£¬ÔÚCÖиü¶àµÄÊÇËã·¨µÄ¸ÅÄî¡£ÄÇôÊDz»ÊÇC¾Í²»ÖØÒªÁË£¬´í£¡Ëã·¨ÊdzÌÐòÉè¼ÆµÄ»ù´¡£¬ºÃµÄÉè¼ÆÈç¹ûûÓкõÄËã·¨£¬Ò»Ñù²»ÐС£¶øÇÒ£¬“C¼ÓÉϺõÄÉè¼Æ”Ò²ÄÜд³ö·Ç³£ºÃµÄ¶«Î÷¡£
¶ÔÓïÑÔ±¾Éí¶øÑÔ£¬CÊÇC++µÄ×Ó¼¯£¬ÄÇôÊÇʲôÑùµÄÒ»¸ö×Ó¼¯£¿´ÓÉÏÎÄ¿ÉÒÔ¿´³ö£¬ CʵÏÖÁËC++Öйý³Ì»¯¿ØÖƼ°ÆäËüÏà¹Ø¹¦ÄÜ£¬¶øÔÚC++ÖеÄC£¨ÎÒ³ÆËüΪ“C+”£©£¬Ïà¶ÔÓÚÔÀ´µÄC»¹ÓÐËù¼ÓÇ¿£¬ÒýÈëÁËÖØÔØ¡¢ÄÚÁªº¯Êý¡¢Òì³£´¦ÀíµÈµÈÍæÒÕ¶ù£¬C++¸üÊÇÍØÕ¹ÁËÃæÏò¶ÔÏóÉè¼ÆµÄÄÚÈÝ£¬ÈçÀà¡¢¼Ì³Ð¡¢Ð麯Êý¡¢Ä£°åºÍ°üÈÝÆ÷ÀàµÈµÈ¡£
ÔÙÌá¸ßÒ»µã£¬ÔÚC++ÖУ¬Êý¾Ý·â×°¡¢ÀàÐÍÕâЩ¶«¶«ÒѲ»ÊÇʲôÐÂÏÊÊÂÁË£¬ ......
CÊÇÒ»¸ö½á¹¹»¯ÓïÑÔ£¬ÈçÌ·ÀÏÒ¯×ÓËù˵£ºËüµÄÖØµãÔÚÓÚËã·¨ºÍÊý¾Ý½á¹¹¡£C³ÌÐòµÄÉè¼ÆÊ×Òª¿¼ÂǵÄÊÇÈçºÎͨ¹ýÒ»¸ö¹ý³Ì£¬¶ÔÊäÈ루»ò»·¾³Ìõ¼þ£©½øÐÐÔËËã´¦ÀíµÃµ½Êä³ö£¨»òʵÏÖ¹ý³Ì£¨ÊÂÎñ£©¿ØÖÆ£©£¬¶ø¶ÔÓÚC++£¬Ê×Òª¿¼ÂǵÄÊÇÈçºÎ¹¹ÔìÒ»¸ö¶ÔÏóÄ£ÐÍ£¬ÈÃÕâ¸öÄ£ÐÍÄܹ»ÆõºÏÓëÖ®¶ÔÓ¦µÄÎÊÌâÓò£¬ÕâÑù¾Í¿ÉÒÔͨ¹ý»ñÈ¡¶ÔÏóµÄ״̬ÐÅÏ¢µÃµ½Êä³ö»òʵÏÖ¹ý³Ì£¨ÊÂÎñ£©¿ØÖÆ¡£
ËùÒÔCÓëC++µÄ×î´óÇø±ðÔÚÓÚËüÃǵÄÓÃÓÚ½â¾öÎÊÌâµÄ˼Ïë·½·¨²»Ò»Ñù¡£Ö®ËùÒÔ˵C++±ÈC¸üÏȽø£¬ÊÇÒòΪ“ Éè¼ÆÕâ¸ö¸ÅÄîÒѾ±»ÈÚÈëµ½C++Ö®ÖÐ ”£¬¶ø¾ÍÓïÑÔ±¾Éí¶øÑÔ£¬ÔÚCÖиü¶àµÄÊÇËã·¨µÄ¸ÅÄî¡£ÄÇôÊDz»ÊÇC¾Í²»ÖØÒªÁË£¬´í£¡Ëã·¨ÊdzÌÐòÉè¼ÆµÄ»ù´¡£¬ºÃµÄÉè¼ÆÈç¹ûûÓкõÄËã·¨£¬Ò»Ñù²»ÐС£¶øÇÒ£¬“C¼ÓÉϺõÄÉè¼Æ”Ò²ÄÜд³ö·Ç³£ºÃµÄ¶«Î÷¡£
¶ÔÓïÑÔ±¾Éí¶øÑÔ£¬CÊÇC++µÄ×Ó¼¯£¬ÄÇôÊÇʲôÑùµÄÒ»¸ö×Ó¼¯£¿´ÓÉÏÎÄ¿ÉÒÔ¿´³ö£¬ CʵÏÖÁËC++Öйý³Ì»¯¿ØÖƼ°ÆäËüÏà¹Ø¹¦ÄÜ£¬¶øÔÚC++ÖеÄC£¨ÎÒ³ÆËüΪ“C+”£©£¬Ïà¶ÔÓÚÔÀ´µÄC»¹ÓÐËù¼ÓÇ¿£¬ÒýÈëÁËÖØÔØ¡¢ÄÚÁªº¯Êý¡¢Òì³£´¦ÀíµÈµÈÍæÒÕ¶ù£¬C++¸üÊÇÍØÕ¹ÁËÃæÏò¶ÔÏóÉè¼ÆµÄÄÚÈÝ£¬ÈçÀà¡¢¼Ì³Ð¡¢Ð麯Êý¡¢Ä£°åºÍ°üÈÝÆ÷ÀàµÈµÈ¡£
ÔÙÌá¸ßÒ»µã£¬ÔÚC++ÖУ¬Êý¾Ý·â×°¡¢ÀàÐÍÕâЩ¶«¶«ÒѲ»ÊÇʲôÐÂÏÊÊÂÁË£¬ ......
LinuxÏ»ñµÃϵͳʱ¼äµÄCÓïÑÔµÄʵÏÖ·½·¨
#include<time.h> //CÓïÑÔµÄÍ·Îļþ
#include<stdio.h> //C﵀I/O
void main()
{
time_t now; //ʵÀý»¯time_t½á¹¹
struct tm *timenow; //ʵÀý»¯tm½á¹¹Ö¸Õë
time(&now);
//timeº¯Êý¶ÁÈ¡ÏÖÔÚµÄʱ¼ä(¹ú¼Ê±ê׼ʱ¼ä·Ç±±¾©Ê±¼ä)£¬È»ºó´«Öµ¸ønow
timenow = localtime(&now);
//localtimeº¯Êý°Ñ´ÓtimeÈ¡µÃµÄʱ¼änow»»Ëã³ÉÄãµçÄÔÖеÄʱ¼ä(¾ÍÊÇÄãÉèÖõĵØÇø)
printf("Local time is %s\n",asctime(timenow));
//ÉϾäÖÐasctimeº¯Êý°Ñʱ¼äת»»³É×Ö·û£¬Í¨¹ýprintf()º¯ÊýÊä³ö
}
×¢ÊÍ£ºtime_tÊÇÒ»¸öÔÚtime.hÖж¨ÒåºÃµÄ½á¹¹Ìå¡£¶øtm½á¹¹ÌåµÄÔÐÎÈçÏ£º
struct tm
{
int tm_sec;//seconds 0-61
int tm_min;//minutes 1-59
int tm_hour;//hours 0-23
int tm_mday;//day of the month 1-31
int tm_mon;//months since jan 0-11
int tm_year;//years from 1900
int tm_wday;//days since Sunday, 0-6
int tm_yday;//days since Jan 1, 0-365
int tm_isdst;//Daylight Saving ......
LinuxÏ»ñµÃϵͳʱ¼äµÄCÓïÑÔµÄʵÏÖ·½·¨
#include<time.h> //CÓïÑÔµÄÍ·Îļþ
#include<stdio.h> //C﵀I/O
void main()
{
time_t now; //ʵÀý»¯time_t½á¹¹
struct tm *timenow; //ʵÀý»¯tm½á¹¹Ö¸Õë
time(&now);
//timeº¯Êý¶ÁÈ¡ÏÖÔÚµÄʱ¼ä(¹ú¼Ê±ê׼ʱ¼ä·Ç±±¾©Ê±¼ä)£¬È»ºó´«Öµ¸ønow
timenow = localtime(&now);
//localtimeº¯Êý°Ñ´ÓtimeÈ¡µÃµÄʱ¼änow»»Ëã³ÉÄãµçÄÔÖеÄʱ¼ä(¾ÍÊÇÄãÉèÖõĵØÇø)
printf("Local time is %s\n",asctime(timenow));
//ÉϾäÖÐasctimeº¯Êý°Ñʱ¼äת»»³É×Ö·û£¬Í¨¹ýprintf()º¯ÊýÊä³ö
}
×¢ÊÍ£ºtime_tÊÇÒ»¸öÔÚtime.hÖж¨ÒåºÃµÄ½á¹¹Ìå¡£¶øtm½á¹¹ÌåµÄÔÐÎÈçÏ£º
struct tm
{
int tm_sec;//seconds 0-61
int tm_min;//minutes 1-59
int tm_hour;//hours 0-23
int tm_mday;//day of the month 1-31
int tm_mon;//months since jan 0-11
int tm_year;//years from 1900
int tm_wday;//days since Sunday, 0-6
int tm_yday;//days since Jan 1, 0-365
int tm_isdst;//Daylight Saving ......
»ùÓÚÓÅÏȼ¶µÄ²Ù×÷ϵͳ£¨preemptive operating system£©±ØÐëʹÓÃijÖÖËã·¨ÒÔ¾ö¶¨CPUÈçºÎµ÷¶ÈϵͳÖеÄỊ̈߳¬±¾Õ½«ÌÖÂÛWindows VistaʹÓõĵ÷¶ÈËã·¨¡£ ÎÒÃÇ֮ǰÌÖÂÛ¹ýÏ̵߳ÄÉÏÏÂÎĽṹCONTEXT£¬ÆäÖк¬ÓÐÏß³Ì×îºóÒ»´ÎÖ´ÐÐʱCPU¼Ä´æÆ÷×éµÄ״̬¡£ ²Ù×÷ϵͳÿ20ºÁÃë¼ì²éϵͳÖÐËùÓÐÏß³ÌÄں˶ÔÏóµÄ״̬£¬ÆäÖÐһЩ¶ÔÏó±»ÈÏΪÊǿɵ÷¶È£¨scheduable£©µÄ£¬²Ù×÷ϵͳ»á´Ó¿Éµ÷¶ÈµÄ¶ÔÏóÖÐÑ¡ÔñÒ»¸ö£¬²¢½«ÆäCONTEXTÖеÄÖµ¼ÓÔØµ½CPU¼Ä´æÆ÷×éÖУ¬Õâ¸öʵÏÖÏ̵߳÷¶ÈµÄ¹ý³Ì±»³ÆÎªÉÏÏÂÎÄÇл»£¨Context Switch£©¡£
½ÓÏÂÀ´£¬±»Ñ¡ÔñµÄÏ߳̽«ÔÚÆä½ø³ÌµØÖ·¿Õ¼äÖÐÖ´ÐдúÂë¡¢²Ù×÷Êý¾Ý¡£´ó¸Å20msÖ®ºó£¬Windows»áÖØÐ½«CPU¼Ä´æÆ÷×éµÄ״̬д»Øµ½¸ÃÏ̵߳ÄCONTEXT½á¹¹ÖУ¬²¢´ÓÆäËü¿Éµ÷¶ÈµÄÏß³ÌÄں˶ÔÏóÖÐÑ¡ÔñÒ»¸öÒªµ÷¶ÈµÄ¶ÔÏ󣬽«ÆäCONTEXT½á¹¹ÄÚÈݼÓÔØµ½CPU¼Ä´æÆ÷ÖУ¬ÕâÑùÔÏ߳̽«²»ÔÙÔËÐУ¬ÐÂÏ߳̿ªÊ¼ÔËÐС£ÉÏÏÂÎÄÇл»»á´ÓϵͳÆô¶¯¿ªÊ¼³ÖÐøµ½ÏµÍ³¹Ø±Õ¡£
ϵͳֻ»áµ÷¶È¿Éµ÷¶ÈµÄỊ̈߳¬µ«ÊÂʵÉÏϵͳÖеĴó¶àÊýÏ̶߳¼ÊDz»¿É¸ß¶ÈµÄ¡£±ÈÈ磬ÓÐЩÏ̵߳ÄÔÝÍ£¼ÆÊý£¨suspend count£©´óÓÚ0£¬ÕâÒâζ×ÅÏ̱߳»¹ÒÆðÇÒ²»Ó¦¸ÃΪÆä·ÖÅäÈκÎCPUʱ¼ä£¬ÎªÁË¹ÒÆðÒ»¸öỊ̈߳¬¿ÉÒÔÔÚ´´½¨Ïß³ÌʱΪCreateThreadÖ¸¶¨CREATE_SUSPEND±êÖ¾£¬±¾Õº ......
»ùÓÚÓÅÏȼ¶µÄ²Ù×÷ϵͳ£¨preemptive operating system£©±ØÐëʹÓÃijÖÖËã·¨ÒÔ¾ö¶¨CPUÈçºÎµ÷¶ÈϵͳÖеÄỊ̈߳¬±¾Õ½«ÌÖÂÛWindows VistaʹÓõĵ÷¶ÈËã·¨¡£ ÎÒÃÇ֮ǰÌÖÂÛ¹ýÏ̵߳ÄÉÏÏÂÎĽṹCONTEXT£¬ÆäÖк¬ÓÐÏß³Ì×îºóÒ»´ÎÖ´ÐÐʱCPU¼Ä´æÆ÷×éµÄ״̬¡£ ²Ù×÷ϵͳÿ20ºÁÃë¼ì²éϵͳÖÐËùÓÐÏß³ÌÄں˶ÔÏóµÄ״̬£¬ÆäÖÐһЩ¶ÔÏó±»ÈÏΪÊǿɵ÷¶È£¨scheduable£©µÄ£¬²Ù×÷ϵͳ»á´Ó¿Éµ÷¶ÈµÄ¶ÔÏóÖÐÑ¡ÔñÒ»¸ö£¬²¢½«ÆäCONTEXTÖеÄÖµ¼ÓÔØµ½CPU¼Ä´æÆ÷×éÖУ¬Õâ¸öʵÏÖÏ̵߳÷¶ÈµÄ¹ý³Ì±»³ÆÎªÉÏÏÂÎÄÇл»£¨Context Switch£©¡£
½ÓÏÂÀ´£¬±»Ñ¡ÔñµÄÏ߳̽«ÔÚÆä½ø³ÌµØÖ·¿Õ¼äÖÐÖ´ÐдúÂë¡¢²Ù×÷Êý¾Ý¡£´ó¸Å20msÖ®ºó£¬Windows»áÖØÐ½«CPU¼Ä´æÆ÷×éµÄ״̬д»Øµ½¸ÃÏ̵߳ÄCONTEXT½á¹¹ÖУ¬²¢´ÓÆäËü¿Éµ÷¶ÈµÄÏß³ÌÄں˶ÔÏóÖÐÑ¡ÔñÒ»¸öÒªµ÷¶ÈµÄ¶ÔÏ󣬽«ÆäCONTEXT½á¹¹ÄÚÈݼÓÔØµ½CPU¼Ä´æÆ÷ÖУ¬ÕâÑùÔÏ߳̽«²»ÔÙÔËÐУ¬ÐÂÏ߳̿ªÊ¼ÔËÐС£ÉÏÏÂÎÄÇл»»á´ÓϵͳÆô¶¯¿ªÊ¼³ÖÐøµ½ÏµÍ³¹Ø±Õ¡£
ϵͳֻ»áµ÷¶È¿Éµ÷¶ÈµÄỊ̈߳¬µ«ÊÂʵÉÏϵͳÖеĴó¶àÊýÏ̶߳¼ÊDz»¿É¸ß¶ÈµÄ¡£±ÈÈ磬ÓÐЩÏ̵߳ÄÔÝÍ£¼ÆÊý£¨suspend count£©´óÓÚ0£¬ÕâÒâζ×ÅÏ̱߳»¹ÒÆðÇÒ²»Ó¦¸ÃΪÆä·ÖÅäÈκÎCPUʱ¼ä£¬ÎªÁË¹ÒÆðÒ»¸öỊ̈߳¬¿ÉÒÔÔÚ´´½¨Ïß³ÌʱΪCreateThreadÖ¸¶¨CREATE_SUSPEND±êÖ¾£¬±¾Õº ......
º¯Êý - ÉùÃ÷¡¢¶¨Òå¡¢µ÷ÓÃ
¡¡¡¡1. Èç¹ûº¯ÊýûÓÐÉùÃ÷, Ó¦¸ÃÔÚµ÷ÓÃǰ¶¨Òå:
#include¡¡<stdio.h>
/*¡¡¶¨ÒåÇó´óÖµº¯Êý¡¡*/
int¡¡MAX(int¡¡x,¡¡int¡¡y)¡¡{
¡¡¡¡if¡¡(x¡¡>¡¡y)
¡¡¡¡¡¡¡¡return¡¡x;
¡¡¡¡else
¡¡¡¡¡¡¡¡return¡¡y;
}¡¡
/*¡¡¶¨ÒåÇóСֵº¯Êý¡¡*/
int¡¡MIN(int¡¡x,¡¡int¡¡y)¡¡{
¡¡¡¡return¡¡x¡¡<¡¡y¡¡?¡¡x¡¡:¡¡y;
}¡¡
int¡¡main(void)
{
¡¡¡¡int¡¡a¡¡=¡¡5;
¡¡¡¡int¡¡b¡¡=¡¡6;
¡¡¡¡/*¡¡µ÷Óú¯Êý¡¡*/
¡¡¡¡printf("%dn",¡¡MAX(a,b));
¡¡¡¡printf("%dn",¡¡MIN(a,b));¡¡¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡getchar();
¡¡¡¡return¡¡0;
}
¡¡¡¡2. ¿ÉÒÔÔÚº¯ÊýÍ·ÉùÃ÷:
#include¡¡<stdio.h>
int¡¡main(void)
{
¡¡¡¡int¡¡a¡¡=¡¡5;
¡¡¡¡int¡¡b¡¡=¡¡6;
¡¡¡¡/*¡¡ÔÚº¯ÊýÍ·ÉùÃ÷ҪʹÓõĺ¯Êý¡¡*/
¡¡¡¡int¡¡MAX(int¡¡x,¡¡int¡¡y);
¡¡¡¡int¡¡MIN(int¡¡x,¡¡int¡¡y);
¡¡¡¡
¡¡¡¡/*¡¡µ÷Óú¯Êý¡¡*/
¡¡¡¡printf("%dn",¡¡MAX(a,b));
¡¡¡¡printf("%dn",¡¡MIN(a,b));¡¡¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡getchar();
¡¡¡¡return¡¡0;
}
/*¡¡¶¨ÒåÇó´óÖµº¯Êý¡¡*/
int¡¡MAX(int¡¡x,¡¡int¡¡y)¡¡{
¡¡¡¡if¡¡(x¡¡>¡¡y)
¡¡¡¡¡¡¡¡return¡¡x;
¡¡¡¡else
¡¡¡¡¡¡¡¡return¡¡y;
}¡¡
/ ......
º¯Êý - ÉùÃ÷¡¢¶¨Òå¡¢µ÷ÓÃ
¡¡¡¡1. Èç¹ûº¯ÊýûÓÐÉùÃ÷, Ó¦¸ÃÔÚµ÷ÓÃǰ¶¨Òå:
#include¡¡<stdio.h>
/*¡¡¶¨ÒåÇó´óÖµº¯Êý¡¡*/
int¡¡MAX(int¡¡x,¡¡int¡¡y)¡¡{
¡¡¡¡if¡¡(x¡¡>¡¡y)
¡¡¡¡¡¡¡¡return¡¡x;
¡¡¡¡else
¡¡¡¡¡¡¡¡return¡¡y;
}¡¡
/*¡¡¶¨ÒåÇóСֵº¯Êý¡¡*/
int¡¡MIN(int¡¡x,¡¡int¡¡y)¡¡{
¡¡¡¡return¡¡x¡¡<¡¡y¡¡?¡¡x¡¡:¡¡y;
}¡¡
int¡¡main(void)
{
¡¡¡¡int¡¡a¡¡=¡¡5;
¡¡¡¡int¡¡b¡¡=¡¡6;
¡¡¡¡/*¡¡µ÷Óú¯Êý¡¡*/
¡¡¡¡printf("%dn",¡¡MAX(a,b));
¡¡¡¡printf("%dn",¡¡MIN(a,b));¡¡¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡getchar();
¡¡¡¡return¡¡0;
}
¡¡¡¡2. ¿ÉÒÔÔÚº¯ÊýÍ·ÉùÃ÷:
#include¡¡<stdio.h>
int¡¡main(void)
{
¡¡¡¡int¡¡a¡¡=¡¡5;
¡¡¡¡int¡¡b¡¡=¡¡6;
¡¡¡¡/*¡¡ÔÚº¯ÊýÍ·ÉùÃ÷ҪʹÓõĺ¯Êý¡¡*/
¡¡¡¡int¡¡MAX(int¡¡x,¡¡int¡¡y);
¡¡¡¡int¡¡MIN(int¡¡x,¡¡int¡¡y);
¡¡¡¡
¡¡¡¡/*¡¡µ÷Óú¯Êý¡¡*/
¡¡¡¡printf("%dn",¡¡MAX(a,b));
¡¡¡¡printf("%dn",¡¡MIN(a,b));¡¡¡¡
¡¡¡¡¡¡¡¡
¡¡¡¡getchar();
¡¡¡¡return¡¡0;
}
/*¡¡¶¨ÒåÇó´óÖµº¯Êý¡¡*/
int¡¡MAX(int¡¡x,¡¡int¡¡y)¡¡{
¡¡¡¡if¡¡(x¡¡>¡¡y)
¡¡¡¡¡¡¡¡return¡¡x;
¡¡¡¡else
¡¡¡¡¡¡¡¡return¡¡y;
}¡¡
/ ......