在/etc/profile 的最后面添加ulimit -s unlimited 保存,source /etc/profile使修改文件生效
我們提供的服務(wù)有:成都網(wǎng)站制作、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、柘榮ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的柘榮網(wǎng)站制作公司
linux查看修改線程默認(rèn)??臻g大小 :ulimit -s
1、通過命令 ulimit -s 查看linux的默認(rèn)??臻g大小,默認(rèn)情況下 為10240 即10M
2、通過命令 ulimit -s 設(shè)置大小值 臨時改變??臻g大小:ulimit -s 102400, 即修改為100M
3、可以在/etc/rc.local 內(nèi) 加入 ulimit -s 102400 則可以開機就設(shè)置??臻g大小
4、在/etc/security/limits.conf 中也可以改變??臻g大小:
#domain type item value
* soft stack 102400
重新登錄,執(zhí)行ulimit -s 即可看到改為102400 即100M
你好。
執(zhí)行命令ulimit ?-a,查看棧大小的限制。
通過使用 ?ulimit ?-s 數(shù)字 進行設(shè)置。
其實,很早就知道pushd和popd在linux中可以用來方便地在多個目錄之間切換。那時比較浮躁,感覺切換目錄沒必要這么復(fù)雜。在實際中,發(fā)現(xiàn)通過使用pushd和popd能夠極大地提高效率。
一般,Shell中都可以通過 cd - 命令回到之前的目錄,下面是一個例子:
實際上, cd - 中, - 就相當(dāng)于變量$OLDPWD。 cd - 就相當(dāng)于 cd $OLDPWD 。下面是一個例子:
pushd和popd是對一個目錄棧進行操作,而dirs是顯示目錄棧的內(nèi)容。而目錄棧就是一個保存目錄的棧結(jié)構(gòu),該棧結(jié)構(gòu)的頂端永遠都存放著當(dāng)前目錄(這里點從下面可以進一步看到)。
dirs常用的有兩個參數(shù):
下面沒有顯示地對目錄棧進行任何操作,我們來看下當(dāng)前目錄棧的內(nèi)容是什么:
可以看出,目錄棧中只有一個目錄(當(dāng)然是在棧頂),就是當(dāng)前所在的目錄。當(dāng)切換目錄之后,棧中的目錄也隨之改變。通過 -c 選項可以將目錄棧中除當(dāng)前目錄之外的其它目錄清除,由于上面的例子中目錄棧只包含當(dāng)前目錄,所以沒有變化。
每次pushd命令執(zhí)行完成之后,默認(rèn)都會執(zhí)行一個dirs命令來顯示目錄棧的內(nèi)容。pushd的用法主要有如下幾種:
每次popd命令執(zhí)行完成之后,默認(rèn)都會執(zhí)行一個dirs命令來顯示目錄棧的內(nèi)容。popd的用法主要有如下幾種:
上面我們用的都是+n作為參數(shù),實際在使用pushd和popd的時候,有時候也會用到-n參數(shù)。兩者的差別如下:+n的含義是從棧頂往棧底方向進行計數(shù),從0開始;-n的含義剛好相反,從棧底向棧頂方向計數(shù),從0開始。這樣有點拗口,實際上,從默認(rèn)的dirs命令(不帶任何參數(shù))的輸出來解釋最好理解了:+n是指從左往右數(shù),-n是指從右往左數(shù),都是從0開始。
不是可以直接用線程屬性進行設(shè)置嗎?
我寫了一個小程序。如下:
#include pthread.h
#include limits.h#define Thread_NUM 5void *MultiThread_soap_serve(){ sleep(5); printf("new pthread!!\n");}//PTHREAD_STACK_MIN 經(jīng)過計算是16K。//64*16K = 1M,線程堆棧應(yīng)該是夠用的。#define MICHAEL_SET_PTHREAD_STACK_SIZE 64int main(){ pthread_attr_t attr; pthread_attr_init(attr); size_t stacksize = MICHAEL_SET_PTHREAD_STACK_SIZE*PTHREAD_STACK_MIN; //stacksize =PTHREAD_STACK_MIN; //stackaddr=(void*)malloc((N+1)*PTHREAD_STACK_MIN); //pthread_attr_getstack(attr,statckattr,stacksize); //pthread_attr_setstack(attr,stackaddr,); pthread_attr_setstacksize(attr,stacksize); int iThreadNum = 0; pthread_t PSoapThread[Thread_NUM]; for ( ; iThreadNum Thread_NUM ; iThreadNum++ ) { pthread_create(PSoapThread[iThreadNum],attr,MultiThread_soap_serve,(void *)NULL); } pthread_attr_destroy(attr); while(1) { sleep(10); printf("main!!\n"); }}