天天看點

Linux下使用兩個線程協作完成一個任務的簡易實作

剛解決了之前的那個Linux下Pthread庫的問題,這次就來使用兩個線程來協作,共同完成一個求和的任務。

本次需要使用到的知識點有:

lpthread,編譯的時候用到,相當于一個聲明的效果

pthread_mutex_t 作為一個鎖對象而存在

pthread_create,建立一個新線程的函數調用

pthread_t ,線程的類型

下面我來說一說此段代碼的核心。

首先,是建立線程之前做的一些“異常”處理,不是最重要的,但是也不可缺少。就是對參數的判斷罷了。

然後,是建立線程的四個參數的具體的含義。分别是引用的線程的id,屬性的引用,線程的入口函數的名稱,以及要傳進線程的方法的參數。

注意這裡是引用類型的線程id。找出就在于可以把建立線程的結果傳回給線程id。這樣就完成了對其的修改。

最後,線上程的入口函數裡面,我對相關項進行了處理。包括判斷線程,加鎖,解鎖等操作。當這兩個線程都執行完成的時候,喚醒主函數(可以認為是“程序”)。完成最後的輸出任務!

額,我這裡完成的多線程的互動,并不是最标準的,甚至可以認為是“挫”。但是主要的思想還是比較的正統的。實際的開發中,需要很多方面的配合才能更好的作出多線程的協作或者互動任務。

畢竟是剛接觸這方面的知識,代碼中不可避免的會存在一些問題。歡迎博友們批評指正,希望能和你們共同進步!

繼續閱讀