C語言多執行緒

2021-10-01 03:51:36 字數 1608 閱讀 1022

首先多執行緒需要乙個標頭檔案進行導包#include

接下來我們需要弄乙個執行緒變數,建立到**都可以,不過推薦建立到外邊,比如pthread_t th1;

接下來我們開始建立執行緒,如果是大型工程的話,建議放到乙個函式裡邊,這個語句是pthread_create(&th1,null,awm,null);,如圖所示:

我這個裡邊的system(「pause」);只是暫停一下,沒啥實際意義,不用去深究。

接下來重點看我那個語句,首先第乙個是執行緒指標,當然就直接指向我們建立的那個執行緒變數啦,因為是指標,所以需要加上取位址符號。第二個是執行緒屬性指標,一般情況下直接預設為空就可以了。第三個是函式指標,注意,必須放指標型別的函式。就是我們這個執行緒要執行的內容。第四個也是直接預設為空,也就可以了。

大家看我第三個裡邊放的是awm,那是因為我創了乙個awm型別的函式指標,如圖所示:

呼叫那個之前封裝的awm函式,就可以執行了,此執行緒還有一些小小的不足,但是可以作為初步入門玩玩,大佬們請輕噴。

接下來要說一說獲取系統時間的問題,要想設定鬧鐘,首先需要獲取系統時間,然後跟我們原來設定的每件事情的事件進行對比,如果符合,那麼則進行提醒。

首先獲取時間函式需要標頭檔案#include

我第二個截圖當中有四行語句:

直接背下來也可以,這就是獲取系統時間,對,就是你電腦上顯示的正常時間的**。

整個一系列下來,最後系統時間是以結構體的形式存放在p裡邊的,這個p裡邊的東西就多了

printf("%d\n",p->tm_sec);輸出的是獲取的當前秒數

printf("%d\n",p->tm_min);輸出的是獲取的當前分數

printf("%d\n",8+p->tm_hour);輸出的是獲取的當前小時數,因為得到的是西方時間,所以正好差八個小時,所以這就有個很神奇的現象,比如你要設定在11月30日2點35分的鬧鈴,這個時候的時間應該設定為11月29日26時35分,至於為什麼,去動動腦筋吧……

printf("%d\n",p->tm_mday);輸出的是獲取的當前日數

printf("%d\n",1+p->tm_mon);輸出的是獲取的當前月數,因為此數的範圍是0—11,所以需要加個1

printf("%d\n",1900+p->tm_year);輸出的是獲取的當前年份,因為此年份是從2023年開始算的,所以加上1990

printf("%d\n",p->tm_yday);輸出的是獲取的從今年1月1日至今的總天數

C語言多執行緒

pthread create的含義為 intpthread create pthread t tidp,constpthread attr t attr,void start rtn void void arg pthread ttidp為指向執行緒識別符號的指標。constpthread attr...

c語言 多執行緒 詳

執行緒在unix系統下,通常被稱為輕量級的程序,執行緒雖然不是程序,但卻可以看作是unix程序的表親,同一程序中的多條執行緒將共享該程序中的全部系統資源,如虛擬位址空間,檔案描述符和訊號處理等等。但同一程序中的多個執行緒有各自的呼叫棧 call stack 自己的暫存器環境 register con...

C 語言多執行緒程式設計

一 linux 下相關函式 函式描述 intpthread create pthread t thread,pthread attr t attr,void start routine void void arg 建立乙個新的執行緒。編譯時帶上 lpthread.引數說明 thread 是乙個指標,...