亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        組合CC++并行編程并行塊研究

        2012-10-20 09:49:36邕江大學(xué)人文學(xué)院陳積常
        河南科技 2012年6期
        關(guān)鍵詞:嵌套線程語句

        邕江大學(xué) 人文學(xué)院 陳積常

        組合CC++并行編程并行塊研究

        邕江大學(xué) 人文學(xué)院 陳積常

        在CC++語言中,并行控制線程的創(chuàng)建大都使用并行塊機(jī)制來完成。并行控制塊(par)的結(jié)構(gòu)與C語言或C++語言中的復(fù)合聲明比較相似,區(qū)別僅在于結(jié)構(gòu)之前所用的是關(guān)鍵字“par”,而非其他串行語言中的關(guān)鍵字。

        一、舉例說明

        1.并行塊結(jié)構(gòu)說明。關(guān)鍵代碼如下所示:

        除了某些特殊情況外,并行塊里面的聲明都應(yīng)是CC++的合法聲明。par不同于普通C++語言的模塊,在par里各種聲明的執(zhí)行順序都是不固定的,塊里的各個(gè)聲明語句都是以交錯(cuò)的方式或者并行的方式執(zhí)行的。

        2.并行塊控制語句。下文是1個(gè)并行塊的控制程序代碼:

        可以看到,par之中有2個(gè)獨(dú)立的控制線程:第1個(gè)語句為“a=2;”,第2個(gè)語句為“b=c+3;”,而“d=b+1;”這個(gè)語句必須在“a= 2;”和“b=c+3;”語句運(yùn)行完畢之后方可運(yùn)行。

        二、結(jié)構(gòu)

        并行塊的重要特征是自身結(jié)構(gòu)提供了并行代碼,一個(gè)被定義的并行塊只有在并行體里面的所有語句運(yùn)行結(jié)束之后才能終止。因此,終止1個(gè)并行塊,意味著塊內(nèi)所有線程都已運(yùn)行完畢。關(guān)鍵代碼如下:

        賦值于a,b,c的各個(gè)線程在不同的時(shí)刻將以不同的順序來完成其賦值工作,即在時(shí)刻T1可能是a先完成,接著到b,最后到c;在時(shí)刻T2有可能是b先完成,然后到a,最后到c。但是,不管以怎樣的順序來完成,整個(gè)并行塊只有在這3個(gè)線程完成之后方能結(jié)束,即只有當(dāng)3個(gè)并行塊完成之后,才能執(zhí)行“sum= a+b+c”這個(gè)語句。

        三、數(shù)據(jù)共享

        CC++語言允許出現(xiàn)數(shù)據(jù)共享情況,只要通過以下一條規(guī)則編寫程序便可,規(guī)則為:如果一個(gè)變量被并行塊內(nèi)一個(gè)線程修改了,其后線程應(yīng)不再使用這個(gè)變量。本文,筆者通過下面的例子來解釋其規(guī)則。

        此并行塊已經(jīng)違反了變量的共享規(guī)則。變量x在并行塊內(nèi)被修改了2次,雖然這些代碼在編譯時(shí)可能未出現(xiàn)錯(cuò)誤,甚至可以正確的運(yùn)行,但是這種情況是極度不安全的,因?yàn)榈阶詈螅⑿袎K的數(shù)值是不固定的,它可能是1也可能是2,或者兩者都不是。如果變量以這種方式被共享的話,編寫出來的程序?qū)⑹清e(cuò)誤的。在這里,既不允許其他線程再修改已被修改過的變量,也不允許其他線程再引用已被修改過的變量,如下例所示程序:

        在該例子中,第1個(gè)語句給s賦值,第2個(gè)語句又引用了s。雖然在運(yùn)行時(shí),未必會出現(xiàn)錯(cuò)誤的結(jié)果,但這是一個(gè)錯(cuò)誤的程序,并行塊中的n的值是混亂的(或者s也可能出現(xiàn)此情況)。實(shí)際編程中要避免使用該類程序。

        四、嵌套

        像普通串行設(shè)計(jì)語言一樣,在并行設(shè)計(jì)語言CC++之中也存在嵌套行為。關(guān)鍵代碼如下所示:

        在上例中,函數(shù)trial()被執(zhí)行并將結(jié)果賦予result1之后,generate_stats()才開始執(zhí)行。

        五、局限性

        1.并行塊中線程的運(yùn)行狀態(tài)是交錯(cuò)的、任意的,它無法確保特定的線程指令在之后多久被執(zhí)行。

        2.不允許在并行塊的范圍之內(nèi)對變量進(jìn)行聲明,這是與并行塊的共享變量規(guī)則相一致的,然而在嵌套中定義則是允許的。

        3.跳入、跳出(goto into ,out of)并行塊或者在并行塊內(nèi)的各個(gè)語句間相互跳轉(zhuǎn)都是不允許的。但是no break,goto,continue,return并行快是可用的。

        六、并行塊的編程實(shí)例

        利用 ∏/4=1-1/3+1/5-1/7…公式求∏的近似值,直到最后一項(xiàng)的絕對值小于0.000 01為止。關(guān)鍵代碼如下:

        該程序主要通過并行塊來實(shí)現(xiàn)對∏的求解。并行塊中“pi= pi+t”、“n= n+2”、“s=-s”3個(gè)語句是并行執(zhí)行的,這3個(gè)語句之間互不關(guān)聯(lián),每個(gè)語句都被創(chuàng)建為一個(gè)獨(dú)立的線程,線程之間的運(yùn)行是并行的。并行塊中的線程是并行的。只有當(dāng)其并行塊內(nèi)所有的線程運(yùn)行結(jié)束時(shí),整個(gè)并行塊運(yùn)行才終止。

        猜你喜歡
        嵌套線程語句
        例析“立幾”與“解幾”的嵌套問題
        基于嵌套Logit模型的競爭性選址問題研究
        重點(diǎn):語句銜接
        精彩語句
        淺談linux多線程協(xié)作
        如何搞定語句銜接題
        語文知識(2014年4期)2014-02-28 21:59:52
        一種基于區(qū)分服務(wù)的嵌套隊(duì)列調(diào)度算法
        無背景實(shí)驗(yàn)到有背景實(shí)驗(yàn)的多重嵌套在電氣專業(yè)應(yīng)用研究
        河南科技(2014年23期)2014-02-27 14:19:17
        Linux線程實(shí)現(xiàn)技術(shù)研究
        么移動中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
        中文字幕无码毛片免费看| 色综合久久五十路人妻| 日本一二三区免费在线 | 精品国模人妻视频网站| 不卡日韩av在线播放| 蜜桃无码一区二区三区| 欧美在线播放一区二区| 性感人妻av在线播放| 国产手机在线观看一区二区三区| 日韩丰满少妇无码内射| 免费人成黄页在线观看视频国产| 午夜视频免费观看一区二区| 中文字幕av熟女中文av| 亚洲av无码一区二区三区乱子伦| 尤物yw无码网站进入| 成人国产自拍在线播放| 一区二区视频中文字幕| gv天堂gv无码男同在线观看 | 国产精品久久久久免费a∨不卡 | 亚洲视频在线一区二区| 品色永久免费| 偷拍网日本一区二区三区| 亚洲精品美女中文字幕久久| 免费无遮挡无码永久视频| 内射后入在线观看一区| 日本一区二区三本视频在线观看| 蜜桃传媒网站在线观看| 欧美 国产 综合 欧美 视频| 精品 无码 国产观看| 久久精品国产亚洲av网在| 中文人妻av久久人妻水蜜桃| 又黄又爽又高潮免费毛片| 白白色发布永久免费观看视频| 国产女同va一区二区三区| 无码人妻久久一区二区三区免费| 中文字幕久久久久人妻无码| 偷窥偷拍一区二区三区| 国产大片黄在线观看| 国产剧情国产精品一区| 日本黑人人妻一区二区水多多| 久久综合九色欧美综合狠狠|