線程:線程是程序中的一個執(zhí)行流,每個線程都有自己的專有寄存器(棧指針、程序計數(shù)器等),但代碼區(qū)是共享的,即不同的線程可以執(zhí)行同樣的函數(shù)。
多線程:多線程是指程序中包含多個執(zhí)行流,即在一個程序中可以同時運(yùn)行多個不同的線程來執(zhí)行不同的任務(wù),也就是說允許單個程序創(chuàng)建多個并行執(zhí)行的線程來完成各自的任務(wù)。
C語言的開始設(shè)計,并未設(shè)計多線程的機(jī)制,由于隨著軟硬件的發(fā)展及需求的發(fā)展。后來C語言才開發(fā)了線程庫以支持多線程的操作、應(yīng)用。
主要基于Linux介紹C多線程。在編譯C的多線程時候,一方面必須指定LinuxC語言線程庫多線程庫pthread,才可以正確編譯(例如:gcctest.c-otest-lpthread);另一方面要包含有關(guān)線程頭文件#include<pthread.h>。