成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

圖解C++多線程問(wèn)題介紹

開(kāi)發(fā) 后端
在C++多線程的世界中有這樣兩個(gè)概念,向上類型轉(zhuǎn)換,向下類型轉(zhuǎn)換,分別描述的是子類向基類和基類向子類的強(qiáng)制類型轉(zhuǎn)換。

下面著重介紹C++多線程,C++多線程為了同步完成了多項(xiàng)任務(wù),而且很大程度的提高了資源使用效率,用較簡(jiǎn)單的話語(yǔ)解釋C++多線程問(wèn)題,它就是在同一時(shí)間內(nèi)完成多項(xiàng)任務(wù)。

重要區(qū)段(TCriticalSection)和事件(TEvent)得到了應(yīng)用。生產(chǎn)者通過(guò)TEvent類的對(duì)象Begin Consume來(lái)通知消費(fèi)者開(kāi)始消費(fèi),而消費(fèi)者通過(guò)TEent類的對(duì)象Begin Produce通知生產(chǎn)者開(kāi)始生產(chǎn)。程序中共有兩個(gè)生產(chǎn)者,一個(gè)消費(fèi)者。在兩個(gè)生產(chǎn)者之間,通過(guò)TCriticalSection類的對(duì)象同步。其運(yùn)行界面如圖1所示。

 程序運(yùn)行效果

主要源程序如下所示:生產(chǎn)者線程:

  1. Void __fast call TProducerThread:: Execute ()  
  2. {  
  3.  //---- Place thread code here ----  
  4.  Int i = 0;  
  5.  Int j;  
  6.  while(i<100) //每個(gè)生產(chǎn)者線程生產(chǎn)100個(gè)商品  
  7.  {  
  8.   Sleep(1000);//延遲,為清楚得顯示執(zhí)行效果  
  9.   if(Form1->buffer_size > 0)//緩沖池不空,通知消費(fèi)者消費(fèi)  
  10.   {  
  11.    Form1->Begin Consumer->Set Event ();  
  12.  }  
  13.  Form1->Produce Guard->Acquire ();  
  14.  i++;  
  15.  StrResult = IntToStr (i);  
  16.  J = Form1->buffer_size;  
  17.  Form1->Product [j] = i;  
  18.  Form1->buffer_size++;  
  19.  Synchronize(Show Result);//刷新界面,顯示最新生產(chǎn)-消費(fèi)狀況  
  20.  Form1->Begin Consumer->Set Event();//通知消費(fèi)者消費(fèi)  
  21.  if(Form1->buffer_size == 5)//緩沖池滿,掛起生產(chǎn)者線程,直到通知再生產(chǎn)  
  22.  {  
  23.   Form1->Begin Produce->Wait For (INFINITE);  
  24.  }  
  25.  Sleep (1000);  
  26.  Form1->Produce Guard->Release ();  
  27. }  
  28. While (Form1->buffer_size > 0)  
  29. {  
  30.  Form1->Begin Consumer->Set Event ();  
  31. }  

消費(fèi)者線程:

  1. Void __fast call TConsumerThread::Execute()  
  2. {  
  3.  //---- Place thread code here ----  
  4.  Int j;  
  5.  For (int i = 0;i < 200;i++)  
  6.  {  
  7.   Sleep(100); //延遲,為清楚得顯示執(zhí)行效果  
  8.   Form1->Begin Consumer->Wait For(INFINITE);//掛起消費(fèi)者線程,直到通知再消費(fèi)  
  9.   J = Form1->buffer_size - 1;  
  10.   StrResult = IntToStr (Form1->Product [j]);  
  11.   Form1->buffer_size--;  
  12.   Synchronize(Show Result); //刷新界面,顯示最新生產(chǎn)-消費(fèi)狀況  
  13.   if(Form1->buffer_size == 4)//緩沖池不再full,喚醒由于緩沖池full而掛起的生產(chǎn)者線程  
  14.   {  
  15.    Form1->Begin Produce->Set Event ();  
  16.   }  
  17.   Sleep (100);  
  18.  }  

本文討論了C++多線程編程及其可行性,說(shuō)明了在Windows環(huán)境下進(jìn)行C++多線程編程的意義,并重點(diǎn)討論了C++Builder平臺(tái)下如何開(kāi)發(fā)多線程應(yīng)用程序這一問(wèn)題,通過(guò)實(shí)現(xiàn)"生產(chǎn)者-消費(fèi)者問(wèn)題"這一著名的進(jìn)程同步問(wèn)題,比較清晰地反映了在Windows環(huán)境下進(jìn)行多線程編程技術(shù)及其實(shí)現(xiàn)的作用和效果。

【編輯推薦】

  1. 如何正確編寫(xiě)C++項(xiàng)目開(kāi)發(fā)編寫(xiě)項(xiàng)目計(jì)劃書(shū)
  2. 對(duì)C++庫(kù)函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. 深度演示C++語(yǔ)言的種種高安全性
  4. 詳細(xì)介紹如何準(zhǔn)確無(wú)誤的編寫(xiě)C++語(yǔ)言
  5. 深度演示C++語(yǔ)言的種種高安全性
責(zé)任編輯:chenqingxiang 來(lái)源: 計(jì)世網(wǎng)
相關(guān)推薦

2021-03-05 07:38:52

C++線程編程開(kāi)發(fā)技術(shù)

2012-05-18 10:36:20

CC++編程

2020-12-28 08:03:26

多線程進(jìn)程瀏覽器

2010-02-04 10:19:39

C++多線程

2010-02-05 15:30:54

C++多線程測(cè)試

2021-02-25 15:58:46

C++線程編程開(kāi)發(fā)技術(shù)

2024-06-24 08:10:00

C++互斥鎖

2023-12-14 15:05:08

volatile代碼C++

2024-11-05 16:29:57

2010-01-19 18:51:17

C++類

2010-01-13 10:37:55

C++開(kāi)發(fā)

2024-06-24 12:57:09

多線程C++編程語(yǔ)言

2010-01-11 15:21:18

C++語(yǔ)言

2009-09-01 17:15:42

C#多線程應(yīng)用

2010-01-15 15:52:18

CC++

2010-01-15 10:41:06

CC++

2011-06-14 15:25:28

C++多線程

2025-04-10 01:01:00

2011-07-22 14:55:20

多線程

2024-02-02 18:29:54

C++線程編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 性一爱一乱一交一视频 | 999精品视频在线观看 | 日韩成人精品视频 | 欧美久久电影 | 日韩在线欧美 | 国产永久免费 | 色综合久久久 | 久久久久久成人网 | 久久成人免费观看 | 国产精品免费一区二区三区 | 国产精品久久久久久妇女 | 日韩欧美在线免费 | 精品日韩一区二区三区 | 久久91| 一区二区精品视频 | 日韩精品一区二区三区在线 | 亚洲精品福利在线 | 久久极品 | 亚洲欧美另类在线观看 | 欧美一级免费 | 久久久久久久97 | 中文字幕精品视频 | 97伊人| 91国产视频在线 | 亚洲精品久久久久久久不卡四虎 | 国产99久久精品一区二区300 | 久久午夜视频 | 中文字幕影院 | 亚洲欧美在线一区 | 午夜av一区二区 | 天天综合永久入口 | 国产精品一区二区久久 | 久久精品久久精品久久精品 | 国产精品69毛片高清亚洲 | 亚洲国产精品久久久久秋霞不卡 | 爱爱无遮挡 | a国产一区二区免费入口 | 日韩一区二区三区在线 | 久久国产一区二区三区 | 综合久久综合久久 | 国产美女特级嫩嫩嫩bbb片 |