Linux¶àÏ̱߳à³Ì»ù´¡
LinuxϵͳϵĶàÏß³Ì×ñÑPOSIXÏ߳̽ӿڣ¬³ÆÎªpthread¡£±àдLinuxϵĶàÏ̳߳ÌÐò£¬ÐèҪʹÓÃÍ·Îļþpthread.h£¬Á¬½Óʱ
ÐèҪʹÓÿâlibpthread.a¡£Ë³±ã˵һÏ£¬LinuxÏÂpthreadµÄʵÏÖÊÇͨ¹ýϵͳµ÷ÓÃclone£¨£©À´ÊµÏֵġ£clone£¨£©ÊÇLinux
ËùÌØÓеÄϵͳµ÷Óã¬ËüµÄʹÓ÷½Ê½ÀàËÆfork£¬¹ØÓÚclone£¨£©µÄÏêϸÇé¿ö£¬ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔÈ¥²é¿´ÓйØÎĵµËµÃ÷¡£ÏÂÃæÎÒÃÇչʾһ¸ö×î¼òµ¥µÄ¶àÏ̳߳ÌÐò
example1.c¡£
/* example.c*/
#include <stdio.h>
#include <pthread.h>
void thread(void)
{
int i;
for(i=0;i<3;i++)
printf("This is a pthread.\n");
}
int main(void)
{
pthread_t id;
int i,ret;
ret=pthread_create(&id,NULL,(void *) thread,NULL);
if(ret!=0)
{
printf ("Create pthread error!\n");
exit (1);
}
for(i=0;i<3;i++)
printf("This is the main process.\n");
pthread_join(id,NULL);
return (0);
}
±àÒ룺gcc -o thread1 thread1.c -lpthread
ÔËÐнá¹û
This is the main process.
This is the main process.
This is the main process.
This is a pthread.
This is a pthread.
This is a pthread.
pthread_tÔÚÍ·Îļþ/usr/include/bits/pthreadtypes.hÖж¨Ò壺
typedef unsigned long int pthread_t;
ËüÊÇÒ»¸öÏ̵߳ıêʶ·û¡£º¯Êýpthread_createÓÃÀ´´´½¨Ò»¸öỊ̈߳¬ËüµÄÔÐÍΪ£º
extern
int pthread_create __P ((pthread_t *__thread, __const pthread_attr_t
*__attr,void *(*__start_routine) (void *), void *__arg));
µÚÒ»¸ö²ÎÊýΪָÏòÏ̱߳êʶ·ûµÄÖ¸Õ룬µÚ¶þ¸ö²ÎÊýÓÃÀ´ÉèÖÃÏß³ÌÊôÐÔ£¬µÚÈý¸ö²ÎÊýÊÇÏß³ÌÔËÐк¯ÊýµÄÆðʼµØÖ·£¬×îºóÒ»¸ö²ÎÊýÊÇÔËÐк¯ÊýµÄ²ÎÊý¡£ÕâÀÎÒÃǵÄ
º¯Êýthread²»ÐèÒª²ÎÊý£¬ËùÒÔ×îºóÒ»¸ö²ÎÊýÉèΪ¿ÕÖ¸Õë¡£µÚ¶þ¸ö²ÎÊýÎÒÃÇÒ²ÉèΪ¿ÕÖ¸Õ룬ÕâÑù½«Éú³ÉĬÈÏÊôÐÔµÄÏ̡߳£¶ÔÏß³ÌÊôÐÔµÄÉ趨ºÍÐÞ¸ÄÎÒÃǽ«ÔÚÏÂÒ»
½Ú²ûÊö¡£µ±´´½¨Ï̳߳ɹ¦Ê±£¬º¯Êý·µ»Ø0£¬Èô²»Îª0Ôò˵Ã÷´´½¨Ïß³Ìʧ°Ü£¬³£¼ûµÄ´íÎ󷵻شúÂëΪEAGAINºÍEINVAL¡£Ç°Õß±íʾϵͳÏÞÖÆ´´½¨ÐµÄỊ̈߳¬
ÀýÈçÏß³ÌÊýÄ¿¹ý¶àÁË£»ºóÕß±íʾµÚ¶þ¸ö²ÎÊý´ú±íµÄÏß³ÌÊôÐÔÖµ·Ç·¨¡£´´½¨Ï̳߳ɹ¦ºó£¬Ð´´½¨µÄÏß³ÌÔòÔËÐвÎÊýÈýºÍ²ÎÊýËÄÈ·¶¨µÄº¯Êý£¬ÔÀ´µÄÏß³ÌÔò¼ÌÐøÔËÐÐÏÂÒ»
ÐдúÂë¡£
º¯Êýpthread_joinÓÃÀ´µÈ´ýÒ»¸öÏ̵߳ĽáÊø¡£º¯ÊýÔÐÍΪ£º
extern int
Ïà¹ØÎĵµ£º
tar
-c: ½¨Á¢Ñ¹Ëõµµ°¸
-x£º½âѹ
-t£º²é¿´ÄÚÈÝ
-r£ºÏòѹËõ¹éµµÎļþĩβ׷¼ÓÎļþ
-u£º¸üÐÂÔѹËõ°üÖеÄÎļþ
ÕâÎå¸öÊǶÀÁ¢µÄÃüÁѹËõ½âѹ¶¼ÒªÓõ½ÆäÖÐÒ»¸ö£¬¿ÉÒԺͱðµÄÃüÁîÁ¬Óõ«Ö»ÄÜÓÃÆäÖÐÒ»¸ö¡£ÏÂÃæµÄ²ÎÊýÊǸù¾ÝÐèÒªÔÚѹËõ»ò½âѹµµ°¸Ê±¿ÉÑ¡µÄ¡£
-z£ºÓÐgzipÊôÐÔµÄ
-j£ºÓÐbz2ÊôÐÔµÄ
-Z£ºÓÐcompressÊôÐ﵀ ......
LinuxϾ²Ì¬¿â.aÉú³É
1.½«¸÷º¯Êý´úÂëËùÔÚµÄÔ´Îļþ±àÒë³ÉĿ¼Îļþ¡£ÀýÈ磬¶ÔÓÚmyfunc.c£¬¿ÉÒÔÓÃÈçÏÂÃüÁî ½«Æä±àÒë³ÉÄ¿±êÎļþ£º
gcc -c myfunc.c
µ±È»ÔÚÓжà¸öÔ´Îļþʱ£¬Ö»ÐèÔÚgcc ÃüÁîÐÐÖн«Æä·Ö±ðÁÐÉϾͿÉÒÔÁË¡£¾´ËÒ»²½£¬½«Äܹ»µÃµ½¸÷Ô´ÎļþµÄÄ¿±êÎļþ¡£¶ÔÉÏÀý£¬½«µÃµ½myfunc.o
2.½«¸÷Ä¿±êÎļþÊÕ¼¯ÆðÀ´· ......
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò»Ñù£¬µ«Linux·¢ÐÐ°æ± ......
ÆäʵLinuxÏÂSVN»¹ÊDZȽϼòµ¥£¬ ÔÚÍøÉÏ£¬ Ò»ËѾÍÊÇÒ»´ó°ÑµÄ×ÊÁÏ¡£ µ«ºÜÉÙÓÐÈËÒ»´Î°²×°³É¹¦£¬ ÒòΪLinuxÖеĻ·¾³Ì«¸´ÔÓ£¬
ºÜÈÝÒ×»·¾³³åÍ»¡£
linux svnÒ»°ãÒÀÀµÓÚhttpd£¨Apache Web·þÎñÆ÷£©.
svn¶ÀÁ¢·½Ê½
µ±È»svn»¹ÓжÀÁ¢·½Ê½£¬ ¼´²»ÐèÒªapache·þÎñÆ÷, ¼´Ìø¹ýÏÂÃæµÄapache°²×°£¬ ¼°ÅäÖÃÖйØÓÚhttpd.conf²¿·Ö¡£
ÔÚ±àÒës ......