Znn3bq.jpeg
²é¿´: 1691  |  »Ø¸´: 5

wahaha2000

Í­³æ (СÓÐÃûÆø)

[ÇóÖú] Çë½ÌÒ»¸öwhile loop³ÌÐòµÄÎÊÌâ

³ÌÐòµÄ´úÂëÈçÏ£º


int turn;
boolean flag[2];

do {
     flag=TRUE;
     turn=j;
     while ( flag && turn==j);

         critical section
     
     flag = false;

         remainder section


} while (TRUE);


ÕâÊÇAbraham SiberschatzµÈдµÄ¡¶²Ù×÷ϵͳ¸ÅÄµÚÆß°æ Ó°Ó¡°æ£©¡·µÚ196Ò³µÄ´úÂë¡£
ÎÒÏëÎʵÄÊÇ£ºÓï¾ä
while ( flag && turn==j);
ÓÐʲô×÷Óã¿ÎÒÔÚÌ·ºÆÇ¿µÄCÓïÑÔÊéºÍ¡¶CÓïÑԲο¼ÊֲᡷÖÐûÕÒµ½ºÏÊʵĽâ´ð£¿
·Ç³£¸Ðл£¡
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

huycwork

½ð³æ (ÖøÃûдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

wahaha2000(½ð±Ò+1): ·Ç³£¸Ðл £¡ 2011-06-09 22:47:22
Õâ¸öÊÇϵͳµÄ»¥³âËø°É£¬ÄãÓÃÌ·ºÆÇ¿½ÌµÄ¶«Î÷ÔõôÄÜѧµ½ÕâÖÖ¶«Î÷ßÀ~
flagÊÇÒ»¸ö»¥³âËø£¬ÐèÒª½øÈëÁÙ½çÇøµÄ½ø³Ì¶¼°Ñ×Ô¼ºµÄËøÉèÖÃΪtrue
ÕâÀïÖ»¼ÙÉèÓÐÁ½¸ö½ø³Ì£¬½ø³Ì1ÐèÒª½øÈëÁÙ½ÖÇøÊ±¾Í°Ñ×Ô¼ºµÄ¿ª¹Ø´ò¿ª£¬È»ºóÈ¥¼ì²éÁíÍâÒ»¸öËø£¬ÕâÀï·ÖÈýÖÖÇé¿ö£º
1.ÁíÍâÒ»¸öËø±»´ò¿ªÁË
2.Á½¸ö½ø³ÌͬʱÔÚ¾ºÕù£¬±¾½ø³Ì¾ºÕùʧ°Ü
3.±¾½ø³Ì¾ºÕù³É¹¦
Ö»ÓÐÇé¿ö3²Å½øÈëÁÙ½çÇø¡£Çé¿ö1ÊǼì²éflag[ 1 - ture ]ΪtrueµÄÇé¿ö£¬Çé¿ö2ÊÇture²»Ö¸Ïò j µÄÇé¿ö¡£
äöÎеÄÖÐÐÄÓÐÒ»¿é¿ÕµØ£¬¿Õ¿ÕµÄ¡£
2Â¥2011-06-09 19:00:37
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)

ÍÆ¼ö°Ñ´úÂë·Åµ½

¡¾code¡¿
͉˕
¡¾/code¡¿

ÆäÖС¾¡¿ÓÃ[]´úÌæ

whileµÄÄǾäÊǵȴýÄÇЩ±ê¼Ç±äÁ¿µÄ±ä»¯£¬Ê¹µÃÌõ¼þ²»Âú×ãÖ®ºóÔÙ¼ÌÐøÖ´ÐÐÏÂÃæµÄÓï¾ä

È»¶øÄã¿ÉÄÜ»áÎÊ£¬ÄÇЩ±äÁ¿Ôõô»á±ä»¯ÄØ£¿

±ÈÈ磬ÆäÖÐÒ»¸ö¿ÉÄÜÊÇÔÚÁíÍâµÄÏ̸߳ıäÁËÄÇЩ±äÁ¿µÄÖµ

»°ËµÄÇÊéÎÒû¿´¹ý£¬Èç¹ûÄãÄܸø³ö³ÌÐòµÄÉÏÏÂÎĵϰ£¬¿ÉÄܸüÓÐÀûÓÚ³æÓÑÃǽøÐÐÀí½â
3Â¥2011-06-09 19:01:56
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

wahaha2000

Í­³æ (СÓÐÃûÆø)

·Ç³£¸ÐлÁ½Î»³æÓѵĻشð¡£ÎÒÏëÎʵÄÊÇ£º
Õâ¸ö

¡¾while ( flag && turn==j);¡¿

Óï¾äÓ¦¸ÃÊÇCÓïÑÔÖе쬵«ÎÒ¿´µ½µÄÁ½±¾CÓïÑÔÊ飨̷ºÆÇ¿µÄCÓïÑÔÊéºÍ¡¶CÓïÑԲο¼Êֲᡷ£©ÖкÃÏñûÕâÖÖÓ÷¨£¬ÎÒÏëÄܲ»ÄܸøÎÒÍÆ¼öÒ»±¾ÓÐÕâÖÖÓ÷¨µÄCÓïÑÔÊ飬ÎÒ×ÐÏ¸È¥ÍÆÇÃÍÆÇá£

±¾ÈËѧÊýѧµÄ£¬¸ÕÄÃÁ˱¾²Ù×÷ϵͳÊé¿´£¬ÎʵÄÎÊÌâÓеã³õ¼¶£¬·Ç³£±§Ç¸£¡
4Â¥2011-06-09 21:24:54
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

wahaha2000

Í­³æ (СÓÐÃûÆø)

ÔÙ±ÈÈçÏÂÃæµÄ´úÂ룺

¡¾ while (true)
{
/* produce an item in nextProduced */
while (counter == BUFFER_SIZE) ; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
counter++;
}  ¡¿

ÆäÖС¾while (counter == BUFFER_SIZE) ; ¡¿Æðʲô×÷Óã¿

£¨1£©Èô counter == BUFFER_SIZE ÎªÕæ£¬³ÌÐòÔõôÔËÐУ¿

¡¾buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
counter++;
¡¿
»¹½Ó×ÅÔËÐÐÂð£¿

£¨2£©Èô counter == BUFFER_SIZE Ϊ¼Ù£¬³ÌÐòÔõôÔËÐУ¿

ÄÜ·ñ¸øÎÒÍÆ¼öÒ»±¾ÓдËÄÚÈݵIJο¼Ê飬·Ç³£¸Ðл£¡
5Â¥2011-06-09 22:14:41
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)

ÒýÓûØÌû:
Originally posted by wahaha2000 at 2011-06-09 22:14:41:
ÔÙ±ÈÈçÏÂÃæµÄ´úÂ룺

¡¾ while (true)
{
/* produce an item in nextProduced */
while (counter == BUFFER_SIZE) ; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
c ...

ßÀ£¬ËƺõÄãûÓÐÀí½âÎÒ˵µÄ¡¾code¡¿¡¾/code¡¿µÄÒâË¼ÄØ

ÓÃËüÃǰѴúÂëȦÆðÀ´Ö®ºó£¬Ð§¹ûÊÇÕâÑùµÄ£¨ÖÐÎĵġ¾¡¿»»³ÉÓ¢ÎĵÄ[]£©
CODE:
while (true)
{
/* produce an item in nextProduced */
while (counter == BUFFER_SIZE) ; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
counter++;
}

while (counter == BUFFER_SIZE) ;Õâ¾äÊǵȴýcounter!=BUFFERSIZEÇé¿öµÄ³öÏÖ~Èç¹ûÒ»Ö±Âú×ãcounter == BUFFER_SIZE£¬Õâ¸öÑ­»·¾Í²»Í£Ö¹£¬Ò»Ö±¼ÌÐø¼ì²é~

Ò»µ©counter!=BUFFERSIZEÁË£¬ÄÇô¾Í½Ó×ÅÖ´ÐÐÏÂÃæµÄ´úÂëÁË
6Â¥2011-06-09 22:20:02
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ wahaha2000 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 295Çóµ÷¼Á +4 ?ÒªÉϰ¶? 2026-04-05 5/250 2026-04-10 23:05 by Ftglcn90
[¿¼ÑÐ] 342µç×ÓÐÅϢר˶Çóµ÷¼Á +8 ÄãÈÃÎÒÔõôÀóÖ¦ 2026-04-10 9/450 2026-04-10 21:46 by fxue1114
[¿¼ÑÐ] 284Çóµ÷¼Á +19 èó@@ 2026-04-06 21/1050 2026-04-10 21:12 by zhouxiaoyu
[¿¼ÑÐ] 298Çóµ÷¼Á +13 ¶¤¶£ß˶¬¹Ï 2026-04-09 13/650 2026-04-10 15:49 by jiajinhpu
[¿¼ÑÐ] 070300»¯Ñ§ Çóµ÷¼Á +13 73372112 2026-04-08 13/650 2026-04-09 20:22 by maddjdld
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤×¨Ë¶329 Çóµ÷¼Á +24 ¶îcc 2026-04-06 25/1250 2026-04-09 16:01 by wp06
[¿¼ÑÐ] 331Çóµ÷¼Á +5 luoxin0706. 2026-04-08 5/250 2026-04-08 22:15 by zhouyuwinner
[¿¼ÑÐ] Èí¼þ¹¤³ÌÇóµ÷¼Á22Èí¹¤296·ÖÇóµ÷¼Á£¬½ÓÊÜ¿çµ÷ +4 yangchen2017 2026-04-08 5/250 2026-04-08 21:56 by ÍÁľ˶ʿÕÐÉú
[¿¼ÑÐ] 318Çóµ÷¼Á +13 ykyhsa 2026-04-05 15/750 2026-04-08 21:37 by wj165256
[¿¼ÑÐ] 285Çóµ÷¼Á +12 AZMK 2026-04-05 18/900 2026-04-08 20:43 by ÄæË®³Ë·ç
[¿¼ÑÐ] 277Çóµ÷¼Á ÊýÒ»104·Ö +9 Æ¿×ÓPZ 2026-04-05 14/700 2026-04-07 17:52 by À¶ÔÆË¼Óê
[¿¼ÑÐ] ²ÄÁÏÇóµ÷¼Á +18 Ò»ÑùYWY 2026-04-05 18/900 2026-04-07 15:49 by dxlg
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©»¯¹¤085600 310·ÖÇóµ÷¼Á +20 0856²ÄÁÏÓ뻯¹¤3 2026-04-04 22/1100 2026-04-07 15:14 by Éϰ¶¿ì¿ì
[¿¼ÑÐ] 0854Çóµ÷¼Á +9 ºàÊÏ·¬ÇÑɳ˾ 2026-04-06 10/500 2026-04-07 14:37 by shdgaomin
[¿¼ÑÐ] Ò»Ö¾Ô¸°²»Õij211 0703»¯Ñ§×Ü·Ö339Çóµ÷¼Á +7 Íí·ç²»Íí 2026-04-04 7/350 2026-04-06 14:06 by houyaoxu
[¿¼ÑÐ] 302·Ö 085601Çóµ÷¼ÁÍÆ¼ö +11 zyxÉϰ¶£¡ 2026-04-05 11/550 2026-04-05 22:13 by dongzh2009
[¿¼ÑÐ] 08ר˶275µ÷¼Á +5 AaAa7420 2026-04-05 5/250 2026-04-05 18:01 by jkddd
[¿¼ÑÐ] 328·Öµ÷¼Á +6 ÃÅmen 2026-04-04 6/300 2026-04-05 13:40 by imissbao
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +8 ÏàÐűػá¹ââÍòÕ 2026-04-05 10/500 2026-04-05 12:19 by Hdyxbekcb
[¿¼ÑÐ] ²ÄÁÏ383Çóµ÷¼Á +5 ¹ùÑôÑôÑô³É 2026-04-04 5/250 2026-04-04 19:06 by dongzh2009
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û