LinuxÖ®Ïß³Ìͬ²½Æª
½øÐжàÏ̱߳à³Ì£¬×îÍ·Ì۵ľÍÊÇÄÇЩ¹²ÏíµÄÊý¾Ý¡£ÒòΪÄãÎÞ·¨ÖªµÀÄĸöÏ̻߳áÔÚÄĸöʱºò¶ÔËü½øÐвÙ×÷£¬ÄãÒ²ÎÞ·¨µÃÖªÄǸöÏ̻߳áÏÈÔËÐУ¬ÄĸöÏ̻߳áºóÔËÐС£ÏÂÃæ½éÉÜһЩ¼¼Êõ£¬Í¨¹ýËûÃÇ£¬Äã»áºÏÀí°²ÅÅÄãµÄÏß³ÌÖ®¼ä¶Ô×ÊÔ´µÄ¾ºÕù¡£
l »¥³âÌåMutex
l ÐźŵÆSemophore
l Ìõ¼þ±äÁ¿Conditions
ÏÈ˵һÏ»¥³âÁ¿¡£
ʲôʱºò»áÓÃÉÏ»¥³âÁ¿ÁË£¿±ÈÈçÄãÏÖÔÚÓÐһȫ¾ÖÁ´±í£¬ÄãÓм¸¸ö¹¤×÷Ï̡߳£Ã¿Ò»¸öÏ̴߳ӸÃÁ´±íÖÐÈ¡³öÍ·½Úµã£¬È»ºó¶Ô¸ÃÍ·½Úµã½øÐд¦Àí¡£±ÈÈçÏÖÔÚÏß³Ì1ÕýÔÚÈ¡³öÍ·½Úµã£¬ËûµÄ²Ù×÷ÈçÏ£º
Item * p =queue_list;
Queue_list=queue_list->next;
Process_job(p);
Free(p);
µ±Ïß³Ì1´¦ÀíÍêµÚÒ»²½£¬Ò²¾ÍÊÇItem *p=queue_listºó£¬ÕâʱºòϵͳֹͣÏß³Ì1µÄÔËÐУ¬¸Ä¶øÔËÐÐÏß³Ì2¡£Ïß³Ì2ÕÕÑùÈ¡³öÍ·½Úµã£¬È»ºó½øÐд¦Àí£¬×îºóÊÍ·ÅÁ˸ýڵ㡣¹ýÁ˶Îʱ¼ä£¬Ïß³Ì1ÖØÐµõ½ÔËÐС£¶øÕâ¸öʱºò£¬ÆäʵpËùÖ¸ÏòµÄ½ÚµãÒѾ±»Ïß³Ì2Êͷŵô£¬¶øÏß³Ì1¶Ô´ËºÁÎÞÖªÏþ¡£Ëû»á½Ó×ÅÔËÐÐprocess_job(p)¡£¶øÕ⽫µ¼ÖÂÎÞ·¨Ô¤Áϵĺó¹û£¡
¶Ô ÓÚÕâÖÖÇé¿ö£¬ÏµÍ³¸øÎÒÃÇÌṩÁË»¥³âÁ¿¡£ÄãÔÚÈ¡³öÍ·½Úµãǰ±ØÐëÒªµÈ´ý»¥³âÁ¿£¬Èç¹û´ËʱÓÐÆäËûÏß³ÌÒѾ»ñµÃ¸Ã»¥³âÁ¿£¬ÄÇôÏ߳̽«»á×èÈûÔÚÕâ¸öµØ·½¡£Ö»Óеȵ½Æä ËûÏß³ÌÊͷŵô¸Ã»¥³âÁ¿ºó£¬ÄãµÄÏ̲߳ÅÓпÉÄܵõ½¸Ã»¥³âÁ¿¡£ÎªÊ²Ã´ÊÇ¿ÉÄÜÁË£¿ÒòΪ¿ÉÄÜ´ËʱÓв»Ö¹ÄãÒ»¸öÏß³ÌÔڵȺò¸Ã»¥³âÁ¿£¬¶øÏµÍ³ÎÞ·¨±£Ö¤ÄãµÄÏ߳̽«»áÓÅÏÈ ÔËÐС£
»¥³âÁ¿µÄÀàÐÍΪpthread_mutex_t¡£Äã¿ÉÒÔÉùÃ÷¶à¸ö»¥³âÁ¿¡£ÔÚÉùÃ÷¸Ã±äÁ¿ºó£¬ÄãÐèÒªµ÷ÓÃpthread_mutex_init()À´´´½¨¸Ã±äÁ¿¡£pthread_mutex_initµÄ¸ñʽÈçÏ£º
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutex-
attr_t *mutexattr);
µÚÒ»¸ö²ÎÊý£¬mutext£¬Ò²¾ÍÊÇÄã֮ǰÉùÃ÷µÄÄǸö»¥³âÁ¿£¬µÚ¶þ¸ö²ÎÊýΪ¸Ã»¥³âÁ¿µÄÊôÐÔ¡£Õâ¸ö½«ÔÚºóÃæÏêϸÌÖÂÛ¡£
ÔÚ´´½¨¸Ã»¥³âÁ¿Ö®ºó£¬Äã±ã¿ÉÒÔʹÓÃËüÁË¡£ÒªµÃµ½»¥³âÁ¿£¬ÄãÐèÒªµ÷ÓÃÏÂÃæµÄº¯Êý£º
int pthread_mutex_lock(pthread_mutex_t *mutex);
¸Ãº¯ÊýÓÃÀ´¸ø»¥³âÁ¿ÉÏËø£¬Ò²¾ÍÊÇÎÒÃÇÇ°ÃæËù˵µÄµÈ´ý²Ù×÷¡£»¥³âÁ¿Ò»µ©±»ÉÏËøºó£¬ÆäËûÏß³ÌÈç¹ûÏë¸ø¸Ã»¥³âÁ¿ÉÏËø£¬ÄÇô¾Í»á×èÈûÔÚÕâ¸ö²Ù×÷ÉÏ¡£Èç¹ûÔÚ´Ë֮ǰ¸Ã»¥³âÁ¿ÒѾ±»ÆäËûÏß³ÌÉÏËø£¬ÄÇô¸Ã²Ù×÷½«»áÒ»Ö±×èÈûÔÚÕâ¸öµØ
Ïà¹ØÎĵµ£º
ʲôʱºòÐèÒª´´½¨Ï̳߳ØÄØ£¿¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÓ¦ÓÃÐèҪƵ·±µÄ´´½¨ºÍÏú»ÙỊ̈߳¬¶øÈÎÎñÖ´ÐеÄʱ¼äÓַdz£¶Ì£¬ÕâÑùÏ̴߳´½¨ºÍÏú»ÙµÄ´øÀ´µÄ¿ªÏú¾Í²»ÈݺöÊÓ£¬ÕâʱҲÊÇÏ̳߳ظóö³¡µÄ»ú»áÁË¡£Èç¹ûÏ̴߳´½¨ºÍÏú»Ùʱ¼äÏà±ÈÈÎÎñÖ´ÐÐʱ¼ä¿ÉÒÔºöÂÔ²»¼Æ£¬ÔòûÓбØÒªÊ¹ÓÃÏ̳߳ØÁË¡£
ÏÂÃæÊÇLinuxϵͳÏÂÓÃCÓïÑÔ´´½¨µÄÒ»¸öÏ̳߳ء£Ï̳߳ػ ......
1¡¢ÓÃGCC±àÒë
1.1¡¢´´½¨Ô´Îļþ
(main.c) C Ô´Îļþ - main.c
#include
#include “reciprocal.hpp”
int main (int argc, char **argv)
{
int i;
i = atoi (argv[1]);
printf (“The reciprocal of %d is %g\n”, i, reciprocal (i ......
ÀûÓÃ
ÏÂÔØµÄÕâ¶Î´úÂ룬³É¹¦ÊµÏÖÁËÊØ»¤½ø³Ì£¬ÔÀ´ÊØ»¤½ø³ÌÊǺܼòµ¥µÄÊÂÇé¡£
¡¡¡¡ÔÚmainº¯ÊýÖÐÖ´ÐÐ
¡¡¡¡init_daemon();//³õʼ»¯ÎªDaemon
¡¡¡¡¾Í¿ÉÒ԰ѽø³Ì±ä³ÉÊØ»¤½ø³Ì
¡¡¡¡
#include
#include
#include
#include
#include
void
init_daemon(void
)
{
int
pid;
int
i;
if
(pid=fork()) ......
http://linux.chinaitlab.com/safe/794893.html
Ðí¶à¸Õ½Ó´¥LinuxµÄÍøÂç¹ÜÀíÔ±·¢ÏÖ£¬ËûÃǺÜÄÑÓÉÖ¸Ïòµã»÷ʽµÄ°²È«
ÅäÖýçÃæ×ª»»µ½ÁíÒ»ÖÖ»ùÓڱ༸´ÔÓ¶øÄÑÒÔ×½ÃþµÄÎı¾ÎļþµÄ½çÃæ¡£±¾ÎÄÁгöÆßÌõ¹ÜÀíÔ±Äܹ»Ò²Ó¦¸Ã¿ÉÒÔ×öµ½µÄ²½Ö裬´Ó¶ø°ïÖúËûÃǽ¨Á¢¸ü¼Ó°²È«
µÄLinux·þÎñÆ÷
£¬²¢ÏÔÖø½µµÍËûÃÇËùÃæÁٵķçÏÕ¡£
&nbs ......
¹ØÓÚlinuxͼÐνçÃæµÄ»ù±¾ÖªÊ¶
×÷Õß:GuCuiwen email:win2linux@163.com
ºÜ¶àLinux³õѧÕß·Ö²»Çå³þLinuxºÍXÖ®¼ä, XºÍXfree86Ö®¼ä, XºÍKDE, GNOMEµÈÖ®¼äÊÇʲô¹ØÏµ. ³£³£»ìÏý¸ÅÄî,ÎÒÏëÒԱȽÏÒ×ÓÚÀí½âµÄ·½Ê½ËµÃ÷Ò»ÏÂX,X11,XFREE,WM,KDE,GNOMEµÈÖ®¼äµÄ¹ØÏµ.ÓÉÓÚ±¾ÈËˮƽÓÐÏÞ¿ÉÄÜ´æÔÚ´íÎó,Çë¸ßÊÖÖ¸Õý ......