²é¿´: 1659  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ²ÄÁÏ 271Çóµ÷¼Á +3 Õ¹ÐÅÔÃ_ 2026-03-21 3/150 2026-03-21 10:17 by ÍõЦÓîÒ»¶¨ÊÇÑо
[¿¼ÑÐ] 302Çóµ÷¼Á +11 ºôºôºô¡£¡£¡£¡£ 2026-03-17 11/550 2026-03-21 08:29 by JourneyLucky
[¿¼ÑÐ] 08¹¤¿Æ 320×Ü·Ö Çóµ÷¼Á +6 À滨çóÍí·ç 2026-03-17 6/300 2026-03-21 03:40 by JourneyLucky
[¿¼ÑÐ] 083200ѧ˶321·ÖÒ»Ö¾Ô¸ôßÄÏ´óѧÇóµ÷¼Á +3 innocenceF 2026-03-17 3/150 2026-03-21 02:35 by JourneyLucky
[¿¼ÑÐ] 278Çóµ÷¼Á +6 ÑÌ»ðÏÈÓÚ´º 2026-03-17 6/300 2026-03-21 01:57 by JourneyLucky
[¿¼ÑÐ] 085700×ÊÔ´Óë»·¾³308Çóµ÷¼Á +12 īīĮ 2026-03-18 13/650 2026-03-21 01:42 by JourneyLucky
[¿¼ÑÐ] 311Çóµ÷¼Á +5 ¶¬Ê®Èý 2026-03-18 5/250 2026-03-21 00:16 by JourneyLucky
[¿¼ÑÐ] 296Çóµ÷¼Á +6 www_q 2026-03-18 10/500 2026-03-20 23:56 by JourneyLucky
[¿¼ÑÐ] 0817 »¯Ñ§¹¤³Ì 299·ÖÇóµ÷¼Á ÓпÆÑо­Àú ÓжþÇøÎÄÕ +22 rare12345 2026-03-18 22/1100 2026-03-20 20:39 by zhukairuo
[¿¼ÑÐ] 289Çóµ÷¼Á +6 »³èªÎÕè¤l 2026-03-20 6/300 2026-03-20 20:30 by ѧԱ8dgXkO
[¿¼ÑÐ] 261ÇóBÇøµ÷¼Á£¬¿ÆÑо­Àú·á¸» +3 Å£Ä̺Üæ 2026-03-20 4/200 2026-03-20 19:34 by JourneyLucky
[¿¼ÑÐ] 085601ר˶£¬×Ü·Ö342Çóµ÷¼Á£¬µØÇø²»ÏÞ +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[¿¼ÑÐ] 277µ÷¼Á +5 ×ÔÓɼå±ý¹û×Ó 2026-03-16 6/300 2026-03-17 19:26 by Àîleezz
[¿¼ÑÐ] 085601Çóµ÷¼Á +4 Du.11 2026-03-16 4/200 2026-03-17 17:08 by ruiyingmiao
[¿¼ÑÐ] 290Çóµ÷¼Á +3 p asserby. 2026-03-15 4/200 2026-03-17 16:35 by wangkm
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄϾ©´óѧ£¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ì£¬µ÷¼Á +4 Jy? 2026-03-16 4/200 2026-03-17 11:02 by gaoqiong
[¿¼ÑÐ] Ò»Ö¾Ô¸211 0703·½Ïò310·ÖÇóµ÷¼Á +3 ŬÁ¦·Ü¶·112 2026-03-15 3/150 2026-03-16 16:44 by houyaoxu
[¿¼ÑÐ] 318Çóµ÷¼Á +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[¿¼ÑÐ] 070300»¯Ñ§Ñ§Ë¶Çóµ÷¼Á +6 Ì«Ïë½ø²½ÁË0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[¿¼ÑÐ] ¸´ÊÔµ÷¼Á +3 ºôºô£¿~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û