返回值:成功:0,錯(cuò)誤:出錯(cuò)編號(hào)。
成都創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計(jì),有關(guān)成都企業(yè)網(wǎng)站建設(shè)方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及茶樓設(shè)計(jì)等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
pthread不是Linux系統(tǒng)默認(rèn)的庫(kù)而是POSIX線程庫(kù)。在Linux中將其作為一個(gè)庫(kù)來(lái)使用,因此編譯時(shí)需要加上-pthread以顯式鏈接該庫(kù)
返回線程ID
線程標(biāo)識(shí)符在進(jìn)程中是唯一的,即分別屬于兩不同進(jìn)程的兩個(gè)線程可能有相同的線程標(biāo)識(shí)符
retval:返回信息
參數(shù)表:
thread: 要等待的線程的pid
retval:用來(lái)存儲(chǔ)被等待線程的返回值
返回0:成功;返回錯(cuò)誤號(hào):失敗
主線程阻塞自己,等待子線程結(jié)束,然后回收子線程資源
可以設(shè)置線程能否被取消和取消后是否立即執(zhí)行
參數(shù)表
state:PTHREAD_CANCEL_DISABLE或者PTHREAD_CANCEL_ENABLE
oldstate:指針類型,上一次取消狀態(tài)的指針,可設(shè)NULL
type:PTHREAD_CANCEL_ASYNCHRONOUS立即取消
PTHREAD_CANCEL_DEFERRED等待事件(如pthread_join時(shí))才取消
在任何一個(gè)時(shí)間點(diǎn)上,線程是可結(jié)合的(joinable),或者是分離的(detached)。一個(gè)可結(jié)合的線程能夠被其他線程收回其資源和殺死,只有當(dāng)pthread_join()函數(shù)返回時(shí),創(chuàng)建的線程才算終止,才能釋放自己占用的系統(tǒng)資源;在被其他線程回收之前,它的存儲(chǔ)器資源(如棧)是不釋放的。相反,一個(gè)分離的線程是不能被其他線程回收或殺死的,它的存儲(chǔ)器資源在它終止時(shí)由系統(tǒng)自動(dòng)釋放。 因此為了避免內(nèi)存泄漏,所有線程的終止,要么已設(shè)為DETACHED,要么就需要使用pthread_join()來(lái)回收
返回0成功,錯(cuò)誤號(hào)失敗
分離后不可以再合并。該操作不可逆
綜合以上要想讓子線程總能完整執(zhí)行(不會(huì)中途退出),
注:很多地方參照了黃茹老師主編的《Linux環(huán)境高級(jí)程序設(shè)計(jì)》
殺死線程 所在的進(jìn)程就可以,
ps aux | grep 進(jìn)程名
kill -TERM 進(jìn)程號(hào)
如果你指的寫程序, 那就參考 man pthread_exit
1、find 查找文件或目錄
find / -size +204800k //在根目錄下查找大于200MB的文件
find / -user username//在根目錄下查找所有者為username的文件
find / -name filename.txt //根據(jù)名稱查找/目錄下的filename.txt文件。
2、復(fù)制文件包括其子文件到自定目錄
cp -r sourceFolder targetFolder
3、查看一個(gè)程序是否運(yùn)行
ps –ef|grep tomcat //查看所有有關(guān)tomcat的進(jìn)程
4、終止線程
kill -9 19979 //終止線程號(hào)位19979的線程
5、查看文件,包含隱藏文件
ls -al
6、當(dāng)前工作目錄
pwd
7、創(chuàng)建目錄
mkdir newfolder
8、刪除目錄(此目錄是空目錄)
rmdir deleteEmptyFolder
9、刪除文件包括其子文件
rm -rf deleteFile
10、移動(dòng)文件
mv /temp/movefile /targetFolder//擴(kuò)展重命名 mv oldNameFile newNameFile
11、切換用戶
su -username
12、修改文件權(quán)限
chmod 777 file.java //file.java的權(quán)限-rwxrwxrwx,r表示讀、w表示寫、x表示可執(zhí)行
13、壓縮文件
tar -czf test.tar.gz /test1 /test2
14、列出壓縮文件列表
tar -tzf test.tar.gz
15、解壓文件
tar -xvzf test.tar.gz
16、查看文件頭10行
head -n 10 example.txt
17、查看文件尾10行
tail -n 10 example.txt
18、查看日志文件
tail -f exmaple.log //這個(gè)命令會(huì)自動(dòng)顯示新增內(nèi)容,屏幕只顯示10行內(nèi)容的(可設(shè)置)。
19、啟動(dòng)Vi編輯器
vi
20、查看系統(tǒng)當(dāng)前時(shí)間
date
命令會(huì)輸出 周幾 幾月 幾日 時(shí)間 和 時(shí)間顯示格式 和年份
Sat Feb 22 15:36:49 CST 2019
date +”%Y-%m-%d”
顯示如下:
[root@ming xxx]# date +"%Y-%m-%d"
如下:
1.查找文件
find / -name filename.txt
根據(jù)名稱查找/目錄下的filename.txt文件
2.查看一個(gè)程序是否運(yùn)行
ps –ef|grep tomcat
查看所有有關(guān)tomcat的進(jìn)程。
3.終止線程
kill -9 19979
終止線程號(hào)位19979的線程
4.查看文件,包含隱藏文件
ls -al
5.當(dāng)前工作目錄
pwd
6.復(fù)制文件包括其子文件到自定目錄
cp -r sourceFolder targetFolder
7.創(chuàng)建目錄
mkdir newfolder
8.刪除目錄(此目錄是空目錄)
rmdir deleteEmptyFolder
9.刪除文件包括其子文件
rm -rf deleteFile
10.移動(dòng)文件
mv /temp/movefile /targetFolder
擴(kuò)展重命名 mv oldNameFile newNameFile
11.切換用戶
su -username
12.修改文件權(quán)限
chmod 777 file.java
//file.java的權(quán)限-rwxrwxrwx,r表示讀、w表示寫、x表示可執(zhí)行
13.壓縮文件
tar -czf test.tar.gz /test1 /test2
14.列出壓縮文件列表
tar -tzf test.tar.gz
15.解壓文件
tar -xvzf test.tar.gz
16.查看文件頭10行
head -n 10 example.txt
17.查看文件尾10行
tail -n 10 example.txt
18.查看日志文件
tail -f exmaple.log
//這個(gè)命令會(huì)自動(dòng)顯示新增內(nèi)容,屏幕只顯示10行內(nèi)容的(可設(shè)置)
19.啟動(dòng)Vi編輯器
vi
20.查看系統(tǒng)當(dāng)前時(shí)間
date
命令會(huì)輸出 周幾 幾月 幾日 時(shí)間 和 時(shí)間顯示格式和年份
Sat Jan 20 04:39:49 CST 2018
date +"%Y-%m-%d"