第一次寫部落格有億點點緊張
1、要求:
1.有三個執行緒,
1.1執行緒1負責把1-99之間的奇數,放入緩衝區
1.2執行緒2負責把2-100之間的偶數,放入緩衝區
1.3執行緒3負責把緩衝區的資料讀出並列印在終端
2.三個執行緒之間互斥使用緩衝區
3.執行緒1和執行緒2交替放入資料,即按照1,、2、3……的順序放入
4.執行緒3按照1,、2、3……的順序取出資料列印
5.只有當資料被執行緒3取走以後,執行緒1和執行緒2才能往緩衝區放資料
6.只有當執行緒1或執行緒2往緩衝區放入資料後,執行緒3才能取走資料
2、程式流程圖
//將2~100偶數放入緩衝區
sem_post
(&sem3);}
pthread_exit
(null);
}void
*th_fun3
(void
* args)
//列印緩衝區資料
pthread_exit
(null);
}int
main()
res =
pthread_create
(&th2,
null
,th_fun2,
"th2");
if(0!= res)
res =
pthread_create
(&th3,
null
,th_fun3,
"th3");
if(0!= res)
pthread_join
(th1,
null);
pthread_join
(th2,
null);
pthread_join
(th3,
null);
sem_destroy
(&sem1)
;sem_destroy
(&sem2)
;sem_destroy
(&sem3)
;return0;
}4、結果
C 執行緒交叉列印1 100
哈哈哈,睡醒了突然覺得昨晚的太簡單了,又想起了一道題,交叉列印1 100,雖然難度也還是只提公升了一丟丟。但是,複習一下也算嘛。include include include include using namespace std mutex data mutex condition variabl...
自用 linux下多執行緒
3 簡單的多執行緒示例 乙個簡單的linux多執行緒示例如下 include include include include void thread function void arg char message hello world int main printf waiting for thre...
linux下多執行緒程式設計
先看執行的結果 1 主函式正在建立執行緒,2執行緒1被建立 3 thread1 i m thread 1th 4執行緒2被建立 5 thread2 i m thread 2nd 6 thread2 number 0 7執行緒3被建立 8主函式正在等待執行緒結束.9 thread1 number 0 ...