linuxÖÐÒ»¸ö½ø³ÌµÄ×î´óÏß³ÌÊýÁ¿ÊǶàÉÙ

ÒѾٱ¨ »Ø´ð
linuxÖÐÒ»¸ö½ø³ÌµÄ×î´óÏß³ÌÊýÁ¿ÊǶàÉÙ
ÎÊÔÚÏß¿Í·þ
ɨÂëÎÊÔÚÏß¿Í·þ
  • »Ø´ðÊý

    5

  • ä¯ÀÀÊý

    5,257

5¸ö»Ø´ð ĬÈÏÅÅÐò
  • ĬÈÏÅÅÐò
  • °´Ê±¼äÅÅÐò

ÒѲÉÄÉ
linux ϵͳÖе¥¸ö½ø³ÌµÄ×î´óÏß³ÌÊýÓÐÆä×î´óµÄÏÞÖÆ PTHREAD_THREADS_MAX
Õâ¸öÏÞÖÆ¿ÉÒÔÔÚ /usr/include/bits/local_lim.h Öв鿴¹ØÓÚLinuxÃüÁîµÄ½éÉÜ£¬¿´¿´¡¶linux¾Í¸ÃÕâôѧ¡·£¬¾ßÌå¹ØÓÚÕâÒ»ÕµØÖ·3w(dot)linuxprobe/chapter-02(dot)html
¶Ô linuxthreads Õâ¸öÖµÒ»°ãÊÇ 1024£¬¶ÔÓÚ nptl ÔòûÓÐÓ²ÐÔµÄÏÞÖÆ£¬½ö½öÊÜÏÞÓÚϵͳµÄ×ÊÔ´
Õâ¸öϵͳµÄ×ÊÔ´Ö÷Òª¾ÍÊÇÏß³ÌµÄ stack ËùÕ¼ÓõÄÄڴ棬Óà ulimit -s ¿ÉÒԲ鿴ĬÈϵÄÏß³ÌÕ»´óС£¬Ò»°ãÇé¿öÏ£¬Õâ¸öÖµÊÇ 8M
È¡Ïû ÆÀÂÛ
ÄãµÄÎÊÌâºÃÉî°Â¡£¡£¡£¡£
È¡Ïû ÆÀÂÛ
ÏÈÓÃps¿´Ä¿Ç°´æÔÚµÄËùÓнø³ÌµÄ½ø³ÌºÅ£¬È»ºó¿ÉÒÔ¶Ô¾ßÌå½ø³Ì²ÉÓÃÒÔÏÂÕâЩ²Ù×÷£º£¨11345¾ÍÊǶÔÓ¦¾ßÌåµÄ½ø³ÌºÅ£©

Ö»²é¿´¸Ã½ø³Ì£ºps -ef | grep 11345
²é¿´¸Ã½ø³Ì´ò¿ªµÄÎļþ£ºlsof -p 11345
²é¿´ÄÚ´æ·ÖÅ䣺lcat /proc/11345/maps
²é¿´¶ÑÕ»£ºpstack 11345
²é¿´·¢³öµÄϵͳµ÷ÓÃ:strace -p 11345
²é¿´µ÷Óÿ⺯Êý:ltrace -p 11345
È¡Ïû ÆÀÂÛ
#include stdio.h
#include stdlib.h
#include unistd.h
#include sys/types.h
#include pthread.h

#define THREAD_NUM 3
void * thread_handler(void *arg);

void main()
{
int i;
pthread_t tid[THREAD_NUM];
for(i = 0; i THREAD_NUM; i++){
pthread_create(&tid[i], NULL, thread_handler, NULL);
}
for(i = 0; i THREAD_NUM; i++){
pthread_join(tid[i],NULL);
}
}

void * thread_handler(void *arg)
{
printf(process id: %d\tthread id: %lu\n, getpid(),pthread_self());
}
È¡Ïû ÆÀÂÛ
²»ÊÇ¡£
¶ÀÁ¢4G¿Õ¼äÊÇ¿¿·ÖÒ³»úÖÆʵÏֵģ¬ÏëÒªÖªµÀ¾ßÌåµÄ¿ÉÒÔÈ¥ÕÒ¡°ÄÚ´æÒ³±í¡±Ïà¹ØµÄ×ÊÁÏ¡£
·Ö¶Î»úÖÆËäÈ»CPUÖ§³Ö£¬²»¹ýLinux¶ÔÓÚÒ»¸ö½ø³ÌµÄÓû§¿Õ¼ä¿´À´Ö»ÊǼòµ¥µØ°Ñ¶Î»ùÖ·¶¼ÉèΪ0¶øÒÑ¡£
ÏëÒªÏêϸ֪µÀµÄ»°»¹ÊÇÈ¥¿´Intel¹Ù·½µÄϵͳ¿ª·¢ÊÖ²á°É£¬·Ö¶ÎºÍ·ÖÒ³»úÖƽ²µÃÊǷdz£Ïêϸ£¬²»¹ýºÜ³¤¶øÇÒÈ«Ó¢Îĵġ­¡­
È¡Ïû ÆÀÂÛ
ZOLÎÊ´ð > linuxÖÐÒ»¸ö½ø³ÌµÄ×î´óÏß³ÌÊýÁ¿ÊǶàÉÙ

¾Ù±¨

¸ÐлÄúΪÉçÇøµÄºÍг¹±Ï×Á¦Á¿ÇëÑ¡Ôñ¾Ù±¨ÀàÐÍ

¾Ù±¨³É¹¦

¾­¹ýºËʵºó½«»á×ö³ö´¦Àí
¸ÐлÄúΪÉçÇøºÍг×ö³ö¹±Ï×

ɨÂë²ÎÓëÐÂÆ·0ÔªÊÔÓÃ
ɹµ¥¡¢¶¥Â¥ºÀÀñµÈÄãÄÃ

ɨһɨ£¬¹Ø×¢ÎÒÃÇ
Ìáʾ

È·¶¨ÒªÈ¡Ïû´Ë´Î±¨Ãû£¬Í˳ö¸Ã»î¶¯£¿