七 執行緒操作

2021-06-06 20:23:42 字數 1805 閱讀 7955

#include #include #include #include #include #include #include #include #include #include #include #define buffer 512

struct copy_file

;void *copy(void *arg)

} if(bytes_write==-1)

break;

*bytes_copy_p+=bytes_read;}}

close(infile);

close(outfile);

pthread_exit(bytes_copy_p);

}int main(int argc,char **argv)

/* 給執行緒分配空間,其實沒有必要這麼多的 */

thread=(pthread_t *)malloc(sizeof(pthread_t)*num);

file=(struct copy_file *)malloc(sizeof(struct copy_file)*num);

if((thread==null)||(file==null))

for(i=0,j=0;id_name);

if(stat(filename,&filestat)==-1)

/* 我們忽略目錄 */

if(!s_isreg(filestat.st_mode))

continue;

if((file[j].infile=open(filename,o_rdonly))<0)

strcat(filename,".bak");

if((file[j].outfile=open(filename,o_wronly|o_creat,s_irusr|s_iwusr))<0)

/* 建立執行緒,進行檔案拷貝 */

if(pthread_create(&thread[j],null,copy,(void *)&file[j])!=0)

fprintf(stderr,"create thread[%d] error:%s\n\a",i,strerror(errno));

j++;

}byte_copy=0;

for(i=0;i

int pthread_create(pthread_t *thread,pthread_attr_t *attr,

void *(*start_routine)(void *),void *arg);

void pthread_exit(void *retval);

int pthread_join(pthread *thread,void **thread_return);

38pthread_create 建立乙個執行緒,thread是用來表明建立執行緒的id,attr 指出執行緒建立時

候的屬性,我們用null 來表明使用預設屬性.start_routine 函式指標是執行緒建立成功後開

始執行的函式,arg 是這個函式的唯一乙個引數.表明傳遞給start_routine 的引數.

pthread_exit 函式和exit 函式類似用來退出執行緒.這個函式結束執行緒,釋放函式的資源,並在

最後阻塞,直到其他執行緒使用pthread_join 函式等待它.然後將*retval 的值傳遞給

**thread_return.由於這個函式釋放所以的函式資源,所以retval 不能夠指向函式的區域性變

量. pthread_join 和wait 呼叫一樣用來等待指定的執行緒. 下面我們使用乙個例項來解釋一

下使用方法.在實踐中,我們經常要備份一些檔案.下面這個程式可以實現當前目錄下的所有

檔案備份.備份後的字尾名為bak

Redis 七 執行緒模型

redis內部使用檔案事件處理器file event handler,這個檔案事件處理器是單執行緒的,所以redis才叫做單執行緒的模型。它採用io 多路復用機制同時監聽客戶端的多個連線 多個socket 根據socket上的事件來選擇對應的事件處理器進行處理。檔案事件處理器的結構包含4個部分 多個...

CUDA 學習(七) 執行緒束

一 概述 執行緒束是gpu的基本執行單元。gpu是一組simd 向量處理器的集合。每一組執行緒或執行緒束中的執行緒同時執行。在理想狀態下,獲取當前指令只需要一次訪存,然後將指令廣播到這個執行緒所占用的所有sp中。當使用gpu進行程式設計時,必須使用向量型別指令,因為gpu採用的是向量體系結構,只有讓...

C 執行緒處理 七 執行緒實列

本筆記摘抄自 記錄一下方便資料查詢。伺服器端頁面 這裡牽涉到httphandle物件問題,這個物件在asp.net中是真正處理資料的物件,後面如果有時間也和大家分享下深入理解asp.net系列,主要是介紹在asp.net中一些核心物件為我們默默做的一些事情,在這裡也不詳細介紹httphandle物件...