linuxÏÂʵÏÖ¶àÏß³Ìͬ²½£¨Ò»£©
²Î¿¼×ÊÁÏ£ºhttp://baike.baidu.com/view/400319.htm
¡¡LinuxϵͳϵĶàÏß³Ì×ñÑPOSIXÏ߳̽ӿڣ¬³ÆÎªpthread¡£±àдLinuxϵĶàÏ̳߳ÌÐò£¬ÐèҪʹÓÃÍ·Îļþpthread.h£¬Á¬½ÓʱÐèÒª ʹÓÿâlibpthread.a¡£Ë³±ã˵һÏ£¬LinuxÏÂpthreadµÄʵÏÖÊÇͨ¹ýϵͳµ÷ÓÃclone£¨£©À´ÊµÏֵġ£clone£¨£©ÊÇLinuxËùÌØ ÓеÄϵͳµ÷Óã¬ËüµÄʹÓ÷½Ê½ÀàËÆfork£¬¹ØÓÚclone£¨£©µÄÏêϸÇé¿ö£¬ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔÈ¥²é¿´ÓйØÎĵµËµÃ÷¡£ÏÂÃæÎÒÃÇչʾһ¸ö×î¼òµ¥µÄ¶àÏ̳߳ÌÐò example1.c
#include <stdio.h>
#include <pthread.h>
#include<sys/types.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);
}
ÎÒÃDZàÒë´Ë³ÌÐò£º
¡¡¡¡gcc example1.c -lpthread -o example1
ÎÒËùʹÓõÄÊÇÀÏʦ½ÌµÄ gcc example.c -g -o example -l phread
ÔËÐÐexample1£¬ÎÒÃǵõ½ÈçϽá¹û£º
This is the main process.
This is a pthread.
This is the main process.
This is the main process.
This is a pthread.
This is a pthread.
ÔÙ´ÎÔËÐУ¬ÎÒÃÇ¿ÉÄܵõ½ÈçϽá¹û£º
This is a pthread.
This is the main process.
This is a pthread.
This is the main process.
This is a pthread.
This is the main process.
¡¡¡¡Ç°ºóÁ½´Î½á¹û²»Ò»Ñù£¬ÕâÊÇÁ½¸öÏß³ÌÕù¶áCPU×ÊÔ´µÄ½á¹û¡£ÉÏÃæµÄʾÀýÖУ¬ÎÒÃÇʹÓõ½ÁËÁ½¸öº¯Êý£¬¡¡pthread_createºÍpthread_join£¬²¢ÉùÃ÷ÁËÒ»¸öpthread_tÐ͵ıäÁ¿¡£
¡¡¡¡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));
¡¡¡¡µÚÒ»¸ö²ÎÊýΪָÏòÏ̱߳êʶ·ûµÄÖ¸Õ룬µÚ¶þ¸ö²ÎÊýÓÃÀ´ÉèÖÃÏß³ÌÊôÐÔ£¬µÚÈý¸ö²ÎÊýÊÇÏß³ÌÔËÐк¯ÊýµÄÆðʼµØÖ·
Ïà¹ØÎĵµ£º
11ÔÂ9ÈÕÏûÏ¢£¬¾Ý¹úÍâýÌ屨µÀ£¬Î¢ÈíǰÑз¢ÈËÔ±¿Ë¹¿â¶ûµÙ˹(Keith Curtis)½üÈÕ±íʾ£¬×¨ÊôÈí¼þ(proprietary software)³ÙÔ罫ÃðÍö£¬Ãâ·ÑµÄLinux½«È¡¶ø´úÖ®¡£
¿â¶ûµÙ˹ÈÏΪ£¬Ãâ·ÑÈí¼þ×îÖÕ½«Õ½Ê¤¸¶·ÑÈí¼þ£¬³ÉΪһÖÖÇ÷ÊÆ¡£Ä¿Ç°£¬Ðí¶àÈËÈÏΪÃâ·ÑÈí¼þ²»¿É¿¿£¬µ«ÕâÖÖ¹ÛÄî»á²»¶Ï¸Ä±ä£¬Ö±ÖÁÃâ·ÑÈí¼þ³ÉΪÖ÷Á÷¡£
ÖÁÓÚ΢ÈíµÄδÀ´³ö·£¬ ......
Linuxϵͳµ÷ÓÃÁбí
±¾ÎÄÁгöÁ˴󲿷ֳ£¼ûµÄLinuxϵͳµ÷Ó㬲¢¸½ÓмòÒªÖÐÎÄ˵Ã÷¡£
ÒÔÏÂÊÇLinuxϵͳµ÷ÓõÄÒ»¸öÁÐ±í£¬°üº¬Á˴󲿷ֳ£ÓÃϵͳµ÷ÓúÍÓÉϵͳµ÷ÓÃÅÉÉú³öµÄµÄº¯Êý¡£Õâ¿ÉÄÜÊÇÄãÔÚ»¥ÁªÍøÉÏËùÄÜ¿´µ½µÄΨһһƪÖÐÎÄ×¢Ê͵ÄLinuxϵͳµ÷ÓÃÁÐ±í£¬¼´Ê¹ÊǼòµ¥µÄ×ÖĸÐòÓ¢ÎÄÁÐ±í£¬ÄÜ× ......
×òÌì,¿ªÊ¼×Ôѧ»ã±àÓïÑÔ,ËäȻ֪µÀÃüÁîÌáʾ·ûÏ¿ÉÒÔѧasm,µ«ÓÉÓÚºÃÆæµÄÇýʹ,¸üÏëÉîÈëµÄÁ˽âdosϵͳ,ËùÒÔ½ñÌ컨Á˺ܳ¤Ê±¼ä,°´ÁËÒ»¸ödos 7.1°æ±¾,¿ªÊ¼dosµÄѧϰ.ÏÖÔÚÒѾÊÇ3ϵͳ²¢´æÁË,ubuntu 9.10,xp,dos 7.1,¸Ð¾õ»¹²»´í.¿´µ½ÃüÁî,ÒÔǰͷºÜ´ó,µ«ÏÖÔÚÔ½À´Ô½Ï²»¶ÉÏÁË.°Ñ×Ô¼ºÖªµÀµÄlinux³£ÓÃÃüÁîºÍdosÂÔ×÷±È½Ï,¿ÉÄÜÓÐÎó.ÔÝÊ ......
/bin »ù´¡ÏµÍ³ËùÐèÒªµÄÄÇЩÃüÁîλÓÚ´ËĿ¼£¬Ò²ÊÇ×îСϵͳËùÐèÒªµÄÃüÁ±ÈÈç ls¡¢cp¡¢mkdirµÈÃüÁ¹¦ÄܺÍ/usr/binÀàËÆ£¬Õâ¸öĿ¼ÖеÄÎļþ¶¼ÊÇ¿ÉÖ´Ðе쬯ÕͨÓû§¶¼¿ÉÒÔʹÓõÄÃüÁî¡£×öΪ»ù´¡ÏµÍ³ËùÐèÒªµÄ×î»ù´¡µÄÃüÁî¾ÍÊÇ·ÅÔÚÕâÀï¡£ /boot LinuxµÄÄں˼°Òýµ¼ÏµÍ³³ÌÐòËùÐèÒªµÄÎļþ£¬±ÈÈç vmlinuz initr ......
refer:http://www.cnblogs.com/diylab/archive/2008/04/24/1169771.html
Õâ¸ömakefile¿ÉÓÃÓÚ±àÒë´ó¶àÊýµÄc++¹¤³Ì¡£
Äã¿ÉÒÔ¸ù¾ÝÐèÒªÐÞ¸ÄÏÂÃæµÄ²ÎÊý£º
VPATH: Ô´ÎļþµÄÎļþ·¾¶¡£¶à¸öÎļþ¼Ð·¾¶Óÿոñ·Ö¸ô
OBJ£º ±àÒëÄ¿±êËùÐèÒªµÄ.oÎļþ
µ±È»£¬ÄãÒ²¿ÉÒÔ²»¸Ä¶¯´ËÎļþ£¬¶øÖ±½ÓÔÚ make ÃüÁîµÄ²ÎÊýÖÐÖ¸¶¨
È磺
make ......