´ó¹¤18´º¡¶²Ù×÷ϵͳ¡·´ó×÷ÒµÌâÄ¿¼°ÒªÇó´ð°¸

for(int i=0;i

hThreads[i]=CreateThread(NULL,0,Producer,NULL,0,&producerID[i]); }

/*---------------------------´´

½¨

Éú

²ú

Õß

Ïß

³Ì

½á

Êø

}

if(hThreads[i]==NULL)

g_continue=0;

-----------------------------*/

/*--------------------------------------------------------*/

void createCT()//´´½¨Ïû·ÑÕßÏß³Ì {

hThreads[PRODUCERS_COUNT+j]=CreateThread(NULL,0,Consumer,NULL,0,&

for (int j=0;j

´´

½¨

Ïû

·Ñ

Õß

Ïß

³Ì

¿ª

ʼ

consumerID[j]);

}

/*--------------------------------------------------------*/

/*----------------------------------------------------------------*/

Ö÷

º¯

Êý

¿ª

ʼ

´´

½¨

Ïû

·Ñ

Õß

Ïß

³Ì

½á

Êø

}

if (hThreads[j]==NULL)

g_continue=0;

void main() {

//´´½¨»¥³âÐźÅÁ¿

g_hMutex=CreateMutex(NULL,FALSE,NULL); //´´½¨×ÊÔ´ÐźÅÁ¿

g_hFullSemaphore=CreateSemaphore(NULL,SIZE_OF_BUFFER-1,SIZE_OF

_BUFFER-1,NULL);

);

//´´½¨Éú²úÕßÏß³Ì createPT(); //´´½¨Ïû·ÑÕßÏß³Ì createCT();

g_hEmptySemaphore=CreateSemaphore(NULL,0,SIZE_OF_BUFFER-1,NULL

//²»°´»Ø³µ¼üµÄ»°³ÌÐò»áÒ»Ö±ÔËÐÐÏÂÈ¥ }

/*----------------------------------------------------------------*/

ËÄ¡¢ ×ܽ᣺

Ö÷

º¯

Êý

½á

Êø

while(g_continue)

//°´»Ø³µ¼üÖÕÖ¹³ÌÐò if(getchar())

g_continue = 0;

Éú²úÕß-Ïû·ÑÕßÎÊÌâÊÇÒ»¸ö¾­µäµÄ½ø³Ìͬ²½ÎÊÌ⣬¸ÃÎÊÌâ×îÔçÓÉDijkstraÌá³ö£¬ÓÃÒÔÑÝʾËûÌá³öµÄÐźÅÁ¿»úÖÆ¡£ÔÚͬһ¸ö½ø³ÌµØÖ·¿Õ¼äÄÚÖ´ÐеÄÁ½¸öÏ̡߳£Éú²úÕßÏß³ÌÉú²úÎïÆ·£¬È»ºó½«ÎïÆ··ÅÖÃÔÚÒ»¸ö¿Õ»º³åÇøÖй©Ïû·ÑÕßÏß³ÌÏû·Ñ¡£Ïû·ÑÕßÏ̴߳ӻº³åÇøÖлñµÃÎïÆ·£¬È»ºóÊÍ·Å»º³åÇø¡£µ±Éú²úÕßÏß³ÌÉú²úÎïÆ·Ê±£¬Èç¹ûûÓпջº³åÇø¿ÉÓã¬ÄÇôÉú²úÕßÏ̱߳ØÐëµÈ´ýÏû·ÑÕßÏß³ÌÊͷųöÒ»¸ö¿Õ»º³åÇø¡£µ±Ïû·ÑÕßÏß³ÌÏû·ÑÎïÆ·Ê±£¬Èç¹ûûÓÐÂúµÄ»º³åÇø£¬ÄÇôÏû·ÑÕßÏ߳̽«±»×èÈû£¬Ö±µ½ÐµÄÎïÆ·±»Éú²ú³öÀ´¡£

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)