前言:我們精心挑選了數(shù)篇優(yōu)質(zhì)航天航空的區(qū)別文章,供您閱讀參考。期待這些文章能為您帶來啟發(fā),助您在寫作的道路上更上一層樓。
本次活動聽課對象為初中、高中學生,授課內(nèi)容為太空環(huán)境下的科學實驗。其意義不僅僅在于王亞平所站講臺的高度以及我國青少年因此得到的太空知識,更在于它向世界傳遞了我國在航天科技方面的獨特探索。
各地教育部門和全國8萬余所中學6000余萬名師生共同組織了收看,天宮一號也因此成為中國“最高”講臺。此次太空授課活動安排的實驗項目,展示了失重環(huán)境下物體運動特性、液體表面張力特性等物理現(xiàn)象,為全國青少年進行了一堂意義非凡的太空授課。各地教育部門和中學高度重視,妥善調(diào)課,組織收看神舟十號航天員太空授課活動,圍繞太空授課活動開展豐富多彩的主題活動,積極響應教育部要求,推動“中國夢、我的夢”主題教育活動和中學科技教育的有效開展,促進中學生全面發(fā)展和健康成長。
2013年6月20日10時04分,跟隨神舟十號遨游太空的航天員王亞平開啟了我國載人航天史上的首次太空授課。330余名少數(shù)民族學生、進城務工人員隨遷子女及港澳臺地區(qū)中小學學生代表在中國人民大學附屬中學綜合樓四層地面課堂,興趣盎然地聆聽了“太空教師”王亞平在神舟十號上為大家所講的一堂40分鐘的實驗課。
中國人民大學附屬中學通過地面課堂具有的雙向音視頻溝通交流能力,與神十航天員進行同步互動交流。地面課堂內(nèi)的學生不僅能夠看到王亞平授課的清晰畫面,身在太空的王亞平也能觀看到和收聽到課堂內(nèi)學生們的實時反應,同學和老師可以像平常課堂一樣進行互動。
在地面課堂上的兩位教師,分別是人大附中的物理教師宓奇和101中學的物理教師史藝,在太空授課開始之前,兩位老師先讓大家猜想本次課程中可能會涉及的原理,及對航天員最關(guān)心的問題是什么?
課程伊始,兩位地面教師先通過一個短片向大家介紹了航天員的衣食住行。當三位航天員出現(xiàn)在屏幕畫面中的時候,學生們立即鼓掌,有人不禁感嘆:畫面好清楚啊!為了向孩子們說明“失重”現(xiàn)象,指令長聶海勝表演了“懸空打坐”,擔任太空教師的王亞平說:“我還會大力神功呢。”她用一根手指輕輕一碰,就把聶海勝推到了船艙后面。看到此情景,孩子們哈哈笑了起來。隨后,王亞平做了5個實驗,分別為質(zhì)量測量演示實驗、單擺運動演示實驗、陀螺演示實驗、水膜演示和水球演示實驗。
天津:做足功課 同步觀看
6月20日,在南開中學航天體驗館,學生們通過弧形屏幕觀看中國首次太空授課。天津大中小學校組織學生同步收看,各學校的“地面課堂”瞬間沸騰。
上午10時,南開中學打開了全部教室和實驗室內(nèi)的閉路電視,讓2000余名中學生共同見證和觀看這一期待已久的難得的歷史時刻。與此同時,南開中學的航天航空體驗中心也全部開放,該校30余名物理社的成員還在教師的指導下,在航天航空體驗中心的仿真平臺上迎來了這一次特殊的“太空課堂”。物理社社長、該校高一年級的女生孔令航興奮地告訴記者,為了收看這次“太空課堂”,大家都做足了功課,在網(wǎng)上搜集了很多物理與航空航天的知識。她說:“雖然是學生,但我們都特別關(guān)心中國航天事業(yè)的發(fā)展,我們每一個人心中都有一個‘航天夢’。這次‘太空課堂’不僅給我們展示了很多新奇的難得一見的太空知識,同時也讓我們的‘航天夢’更加清晰起來,也更加增強了我們實現(xiàn)未來夢想的信心!”
南開中學副校長呂寶桐表示,這次“太空課堂”對學生來講也是一次難得的愛國主義教育,增強了實現(xiàn)中國夢的使命感。
上海:航空航天特色校閔行三中觀摩中國首次太空授課
上海市閔行三中是航空航天特色學校,該校組織了初二年級全體同學觀摩中國首次太空授課。校長在電話里告訴記者,由于閔行三中高中部仍在期末考試期間,因此安排已經(jīng)期末考完的200余名初二學生收看了太空授課。學校還特別安排了30多名科學興趣濃厚、品學兼優(yōu)的學生到高中部的劉輝航天科技工作室集中觀看,現(xiàn)場安排物理老師和同學們互動,解答同學們的疑問。
2011年,閔行三中高一學生提交的“搭載瀕臨滅絕植物種子的探究”搭載方案,從全國113所中小學校的近3000個方案中脫穎而出,成為我國空間試驗室首個出自中學生的研究項目,跟隨當年發(fā)射的“天宮一號”進入太空。
廣東:遨游九天
圓夢中國
6月21日下午,廣東佛山羅村二中初二級全體同學觀看了此次太空授課。
本次太空授課的5個基礎(chǔ)物理實驗,展示了失重環(huán)境下物體運動特性、液體表面張力特性等物理現(xiàn)象,是一堂極其生動的實驗課,激發(fā)了同學們的學習興趣和熱情,使青少年走近航天、了解航天、熱愛航天。
湖南:長沙市37中第一時間收看神舟十號太空授課
6月20號上午10:00,長沙市37中學生在學校的統(tǒng)一安排下,在自己的教室里準時收看了神舟十號太空授課直播,學生們一個個目不轉(zhuǎn)睛地盯著教室黑板正中間的班班通設(shè)備“電子白板”,一起分享著這一場來自太空的實驗課。航天員王亞平給中學生們講授的這一節(jié)實驗課程,解開了同學們心中的很多謎底,比如:航天員在太空的衣、食、住、行是怎么樣的?失重是怎么產(chǎn)生的?太空垃圾怎么處理?有沒有見到UFO?太空中看到的星星是什么樣的?太空中的水是怎么來的?……滿足了學生很多的好奇心。他們在為祖國的航天事業(yè)舉得巨大進步而驕傲和自豪的同時,也激發(fā)了心中的航天夢、科技夢、中國夢、強國夢,增強了要為中華民族的偉大復興貢獻自己力量的決心。
四川:綿陽博雅學校觀看“神舟十號太空授課”直播
6月20日上午10點—10點50分,綿陽博雅學校師生懷著興奮、期待的心情收看了“神舟十號”航天員在“天宮一號”進行的首次“太空授課”。女航天員王亞平給大家演示了小球在太空中的單擺運動和圓周運動、高速旋轉(zhuǎn)的陀螺旋轉(zhuǎn)、神奇的水膜實驗、液體表面張力能使水膜變“魔法水球”等內(nèi)容,激發(fā)了同學們對太空的向往,更讓大家了解航天、熱愛航天、支持航天,讓同學們集體感受了天宮課堂的無窮奧妙。
課后,各班老師還組織同學們談感受、說體會。有同學這樣說:“我一直以為‘天宮一號’在太空上只是固定地待在某個地方,聽王亞平老師說,他們每天會看到16次日出,因為他們每90分鐘就繞地球一圈,我才明白原來‘天宮一號’是要繞著地球運動的。”有的學生說:“太空太神奇了,看到王亞平老師能把地球上的一滴水‘變’成彩色的水球,她就像一個魔法師一樣,那太空中還有多少‘魔法’啊!”
新疆:華山中學學生收看太空課堂 見證奇妙一刻
“在太空當中做這些實驗的時候,真正能夠把理論中的知識在實際應用中的一些狀態(tài)呈現(xiàn)出來。我覺得學生的收獲是非常大的。”6月20日,新疆生產(chǎn)建設(shè)兵團農(nóng)業(yè)建設(shè)第二師華山中學高中物理老師倪穎在與學生一同收看了神舟十號航天員展現(xiàn)的太空課堂后說到。
華山中學的學生們在教室里收看了我國航天史上的首次太空授課,他們時而屏息凝神,時而發(fā)出驚叫;教室里時而鴉雀無聲,時而掌聲一片。神奇的課堂讓學生們見證了太空的奇妙世界,也激發(fā)了他們內(nèi)心的科學夢和太空夢。
有學生表示,這個天宮課堂非常有趣,也非常有意義,它帶給我們一些平時在地球上不能見到的真實現(xiàn)象,這也是科學引人入勝的地方,更加激發(fā)了他們學習科學知識的興趣。
:航天員太空授課激發(fā)雪域?qū)W子太空夢
“太空會不會像高海拔地區(qū)一樣,水到七八十度就能燒開了?”“冬蟲夏草在太空能生長嗎?”“太空像一樣缺氧嗎?”“在高海拔的發(fā)射宇宙飛船會不會更快?”……的學生對太空的熱情很高,顯然,太空授課激發(fā)了他們追夢太空的濃厚興趣。
拉薩中學團委書記薛軍利認為,此次太空授課有助于培養(yǎng)學生在物理學習方面的興趣,激發(fā)學生探索太空的科學精神。不少學生通過太空授課產(chǎn)生了探索太空的夢想,要把個人夢和國家夢結(jié)合起來,使夢想成真。
澳門組織中小學生觀看
“神十”太空授課
6月20日上午,澳門特區(qū)政府教育暨青年局及多家學校組織中、小學生收看“神舟十號”航天員在“天宮一號”作太空授課的現(xiàn)場直播,一同領(lǐng)略奇妙的太空世界。
航天員王亞平在授課中,分別進行了質(zhì)量測量、單擺運動、陀螺、水膜和水球等試驗,展示了失重環(huán)境下物體運動特性、液體表面張力特性等物理現(xiàn)象,并回答了學生的提問,包括關(guān)于航天器用水、太空垃圾防護措施、航天員對抗失重方法和太空景色等。
在澳門教育暨青年局的駿菁活動中心,有250名學生在聆聽航天員老師講課;在勞工子弟學校,也有近百名學生在禮堂集體觀看直播。教育暨青年局還安排了導師在場講解,解答學生們的提問。
有參與聽課的澳門學生稱,對太空的一切都感到很好奇,不知道太空冷不冷?太空是否會有外星人?希望將來航天員來澳門時,有機會直接向他們發(fā)問。
教青局青年廳廳長袁凱清表示,澳門特區(qū)政府一直重視科普教育,通過課余活動、對外交流比賽等形式讓學生接觸科普知識。通過收看太空授課直播,見證了中國航天科學教育的歷史時刻,加深了學生對航天科技的認識,將進一步激發(fā)澳門廣大青少年崇尚科學、熱愛航天的熱情。
美國:2007年,芭芭拉·摩根的第一次太空授課
2007年,美國東部時間8月8日18時36分,美國“奮進”號航天飛機載著機組7名宇航員從佛羅里達州肯尼迪航天中心發(fā)射升空,飛往國際空間站。這是美國宇航局首位教師宇航員芭芭拉·摩根的第一次太空飛行。
航天飛機進入地球軌道后,地面發(fā)射控制中心指揮人員說:“對芭芭拉·摩根和機組伙伴來說,這堂課正式開始了。”摩根曾經(jīng)教書的愛達荷州的科學教師聯(lián)合會專門挑選了18名學生,與摩根進行天地間的師生對話。
摩根這次在空間站上的第一堂課,共進行了25分鐘。在課堂上,一個孩子想知道如何在太空鍛煉。摩根一手托起一個在她身邊飄浮著的宇航員,給予演示。另一位年輕人想知道宇航員是怎樣喝水的,摩根和她的同事從飲用水袋的吸管中擠出水泡,并將水滴吞下。4名宇航員還分別用乒乓球和壘球作講課的道具。
實驗一:質(zhì)量測量演示——沒有了重量,是否意味著失去質(zhì)量?
3位航天員老師“站”穩(wěn)后,先給同學們露了幾手“功夫”——“懸空打坐”“大力神功”。在失重環(huán)境下,航天員們都成了“武林高手”,博得同學們陣陣喝彩。
航天員的表演給同學們帶來了疑問:在地面上,人們一般用天平、臺秤、托盤秤、桿秤、彈簧秤測量物體受到的重力,從而計算物體的質(zhì)量,那么 ,失重環(huán)境下怎樣測質(zhì)量呢?
航天員老師用“天宮一號”上的質(zhì)量測量儀現(xiàn)身說法。他們從“天宮一號”的艙壁上打開一個支架形狀的裝置,航天員聶海勝把自己固定在支架一端,王亞平輕輕拉開支架,一放手,支架便在彈簧的作用下回復原位。裝置上的LED屏上顯示出數(shù)字:74.0。這表示聶海勝的實測質(zhì)量是74千克。
王亞平向同學們解釋道,天宮中的質(zhì)量測量儀,應用的物理學原理是牛頓第二運動定律:F(力)=m(質(zhì)量)×a(加速度)。質(zhì)量測量儀上的彈簧能夠產(chǎn)生一個恒定的力F,同時用光柵測速裝置測量出支架復位的速度v和時間t,計算出加速度(a=v/t),就能夠計算出物體的質(zhì)量(m=F/a)。
王亞平老師還給同學們布置了一道課后思考題:除了運用牛頓第二定律,還有什么辦法可以在失重環(huán)境下測量物體的質(zhì)量?
實驗二:單擺運動演示——太空中的機械鐘表走得更準還是靜止不動?
演示完質(zhì)量測量,航天員們又取出一個物理課上常見的實驗裝置——單擺。
T型支架上,用細繩拴著一顆明黃色的小鋼球。王亞平把小球輕輕拉升到一定位置放手,小球并沒有出現(xiàn)地面上常見的往復擺動,而是停在了半空中。王亞平用手指沿切線方向輕推小球,奇妙的現(xiàn)象出現(xiàn)了,小球開始繞著T型支架的軸心做圓周運動——而在地面對比實驗中,需要施加足夠的力,給小球一個較大的初速度,才能使它繞軸旋轉(zhuǎn)。
太空實驗趣味無窮,地面課堂的學生們也不失時機地向航天員提出他們關(guān)心的問題。人大附中早培班學生徐海博舉手提問:“航天員老師,您在太空中有沒有上下方位感?”
為了回答同學的提問,航天員王亞平在聶海勝的幫助下表演了一套“雜技”動作,分別進行了懸空橫臥和倒立。看到航天員老師的精彩表演,同學們興奮地鼓起掌來。
實際上,航天員在太空中無所謂上和下的方位區(qū)別。不過,為了便于工作生活,航天員們?yōu)椤疤鞂m一號”人為定義了上和下,把朝向地球的一側(cè)定義為下,并專門在“下方”鋪設(shè)了地板。
實驗三:陀螺演示——高速旋轉(zhuǎn)的陀螺為什么不會倒下?
物理學原理告訴我們,高速旋轉(zhuǎn)的陀螺具有很好的定軸特性。在太空失重環(huán)境下,這一特性更加直觀地呈現(xiàn)出來。
航天員王亞平取出一個紅黃相間的陀螺,把它靜止懸放在空中。用手輕推陀螺頂部,陀螺翻滾著飛向遠處。緊接著,王亞平取出一個一模一樣的陀螺,讓它旋轉(zhuǎn)起來,懸浮在半空中,再用手輕輕一推,旋轉(zhuǎn)的陀螺不再翻滾,而是保持著固定的軸向,向前飛去。
王亞平介紹說,高速旋轉(zhuǎn)陀螺的定軸特性在航天領(lǐng)域用途廣泛。在“天宮一號”目標飛行器上,就裝有各式各樣的陀螺定向儀,正是有了它們,才能精準地測量航天器的飛行姿態(tài)。
實驗四:水膜演示——天宮里有沒有“飛流直下”的瀑布?
陽光下五彩繽紛的肥皂泡、能夠讓硬幣漂浮的山泉水,總是帶給人們很多遐想。這些都是液體表面張力在發(fā)揮著神奇作用。
只不過,在地面上,液體表面張力難以抗衡地球引力的影響,只有經(jīng)過特殊處理的肥皂水、富含無機鹽的礦泉水才能表現(xiàn)出比較強的張力特性。但是,在太空失重環(huán)境下,液體的表面張力特性便突顯出來。
王亞平拿起一個航天員飲用水袋,打開止水夾,水并沒有傾瀉而出。輕擠水袋,在飲水管端口形成了一顆晶瑩剔透的水珠,略微抖動水袋,水珠便懸浮在半空中,與“天宮一號”艙壁上鮮艷的五星紅旗圖案交相輝映,更顯得美輪美奐。
接著,她把一個金屬圈插入裝滿飲用水的自封袋中,慢慢抽出金屬圈,便形成了一個漂亮的水膜。輕輕晃動金屬圈,水膜也不會破裂,只是偶爾會甩出幾顆小水滴。隨后,王亞平又往水膜表面貼上了一片畫有中國結(jié)圖案的塑料片,水膜依然完好。這些在地面難得一見的奇特景象,引起了地面課堂同學們的連聲驚嘆。
實驗五:水球演示——用神奇的液體表面張力變個“魔法”
液體表面張力的威力竟如此神奇!普通的飲用水還能變成更加神奇的“魔法水球”。
王亞平用金屬圈重新做了一個水膜,然后用飲水袋慢慢地向水膜上注水,不一會兒,水膜就變成了一個亮晶晶的大水球,水球中還有一串珍珠般的小氣泡,仿佛銀河系中的繁星點點。聶海勝取出一支注射器抽出水球中的氣泡,實驗繼續(xù)進行。
Abstract: Producer-consumer problem is a classic process synchronization and exclusion problem. This paper elaborates the implementation of multi-threaded producer-consumer problem under Linux by using mutexes, condition variables, thread management and other functions, in order to improve resource utilization.
關(guān)鍵詞: 線程;互斥鎖;條件變量
Key words: thread;mutex;conditions variable
中圖分類號:TP39 文獻標識碼:A 文章編號:1006-4311(2012)30-0221-02
1 線程基本概念
1.1 進程和線程 可執(zhí)行文件由指令和數(shù)據(jù)組成。進程就是在計算機上運行的可執(zhí)行文件針對特定的輸入數(shù)據(jù)的一個實例,同一個可執(zhí)行程序文件如果操作不同的輸入數(shù)據(jù)就是兩個不同的進程。
線程是進程的一條執(zhí)行路徑,它包含獨立的堆棧和CPU寄存器狀態(tài),每個線程共享其所附屬的進程的所有的資源,包括打開的文件、頁表(因此也就共享整個用戶態(tài)地址空間)、信號標識及動態(tài)分配的內(nèi)存等等。
Linux中線程調(diào)度是由內(nèi)核調(diào)度程序完成的,每個線程有自己的ID號。與進程相比,它們消耗的系統(tǒng)資源較少、創(chuàng)建較快、相互間的通信也比較容易。存在于同一進程中的線程會共享一些信息。同時作為一個獨立的線程,它們又擁有一些區(qū)別于其他線程的信息,包括線程ID、寄存器集合(如程序計數(shù)器和堆棧指針)、堆棧、錯誤號、信號掩碼以及線程優(yōu)先權(quán)。
線程和進程的關(guān)系是:線程是屬于進程的,線程運行在進程空間內(nèi),同一進程所產(chǎn)生的線程共享同一物理內(nèi)存空間,當進程退出時該進程所產(chǎn)生的線程都會被強制退出并清除。
1.2 線程優(yōu)點
①它是一種非常“節(jié)儉”的多任務操作方式。運行于一個進程中的多個線程,使用的是同一個地址空間,共享大部分數(shù)據(jù),不需要太多的空間啟動一個線程,而且,線程間彼此切換所需的時間也比較短。②線程間方便的通信機制。由于同一進程下的線程之間共享數(shù)據(jù)空間,所以一個線程的數(shù)據(jù)可以直接為其它線程所用,這不僅快捷,而且方便。③使多CPU系統(tǒng)更加有效。操作系統(tǒng)會保證當線程數(shù)不大于CPU數(shù)目時,不同的線程運行于不同的CPU 上。④改善程序結(jié)構(gòu)。一個既長又復雜的進程可以考慮分為多個線程,成為幾個獨立或半獨立的運行部分,便于理解和修改。
2 生產(chǎn)者-消費者問題
2.1 問題概述 生產(chǎn)/消費者在有界緩沖上操作,它利用N個字節(jié)的共享內(nèi)存作為有界循環(huán)緩沖區(qū),生產(chǎn)者線程不斷順序地將0到1000的數(shù)字寫入共享的循環(huán)緩沖區(qū),同時消費者線程不斷地從共享的循環(huán)緩沖區(qū)讀取數(shù)據(jù)。利用寫一個數(shù)據(jù)模擬放一個產(chǎn)品,利用讀一個數(shù)據(jù)模擬消費一個產(chǎn)品。當緩沖區(qū)空時消費者應阻塞睡眠,而當緩沖區(qū)滿時生產(chǎn)者應當阻塞睡眠。一旦緩沖區(qū)中有空單元,生產(chǎn)者線程就向空單元中寫入數(shù)據(jù)。一旦緩沖區(qū)中有未讀過的數(shù)據(jù),消費者線程就從該單元中讀出數(shù)據(jù)。
2.2 算法分析 生產(chǎn)者線程向循環(huán)緩沖區(qū)中寫入數(shù)據(jù),消費者線程從緩沖區(qū)中讀取數(shù)據(jù),生產(chǎn)者線程向緩沖區(qū)中寫入數(shù)據(jù)時消費者線程不能訪問緩沖區(qū),消費者線程從緩沖區(qū)中讀取數(shù)據(jù)時生產(chǎn)者線程也不能訪問緩沖區(qū),既讀的時候不能寫,寫的時候不能讀,得保證緩沖區(qū)這一臨界資源同一時間只能被一個線程訪問;緩沖區(qū)滿的時候不能生產(chǎn),空的時候不能消費。
2.2.1 主程序:初始化結(jié)構(gòu)體prodcons中的各個參數(shù);建立生產(chǎn)者、消費者線程;等待線程結(jié)束。
2.2.2 生產(chǎn)者線程:①設(shè)初始寫入的數(shù)據(jù)N為0;判斷N小于1000是否成立;如果不成立,循環(huán)緩沖區(qū)插入 OVER;如果成立,向循環(huán)緩沖區(qū)生產(chǎn)既寫入N并打印;重復該過程直到N=1000為止。②生產(chǎn)產(chǎn)品的函數(shù)put:獲得互斥鎖;判斷循環(huán)緩沖池是否滿,如果滿將生產(chǎn)者線程阻塞到滿的條件變量b->notfull上,并將互斥鎖釋放,讓消費者線程讀取數(shù)據(jù)。如果不滿,向緩沖中寫入數(shù)據(jù);如果有線程阻塞到環(huán)境變量b->empty,將該線程喚醒,同時釋放互斥鎖。如果沒有線程阻塞到條件變量b->empty上,就直接釋放互斥鎖。
2.2.3 消費者線程:①從循環(huán)緩沖區(qū)中消費既讀取數(shù)據(jù)并打印;判斷讀取的數(shù)據(jù)是否是結(jié)束標志over,如果是退出。如果不是,重復該過程,直到讀到的數(shù)據(jù)是結(jié)束標志over。②消費產(chǎn)品的函數(shù)get:獲得互斥鎖;判斷循環(huán)緩沖池是否空,如果空將生產(chǎn)者線程阻塞到空的條件變量b->empty上,并將互斥鎖釋放,讓生產(chǎn)者線程寫數(shù)據(jù)。如果不空,從緩沖中讀取數(shù)據(jù);如果有線程阻塞到環(huán)境變量b->notfull上,將該線程喚醒,同時釋放互斥鎖。如果沒有線程阻塞到條件變量b->notfull上,就直接釋放互斥鎖。
2.3 數(shù)據(jù)結(jié)構(gòu)
struct prodcons {
int buffer[BUFFER_SIZE]; /* the actual data */
pthread_mutex_t lock; /* mutex ensuring exclusive access to buffer */
int readpos, writepos; /* positions for reading and writing */
pthread_cond_t notempty; /* signaled when buffer is not empty */
pthread_cond_t notfull; /* signaled when buffer is not full */
};
緩沖區(qū)采用循環(huán)緩沖區(qū)。緩沖區(qū)滿的條件(b->writepos + 1) % BUFFER_SIZE == b->readpos。緩沖區(qū)空的條件b->writepos == b->readpos。
2.4 相關(guān)函數(shù)調(diào)用
2.4.1 線程函數(shù)
①創(chuàng)建線程函數(shù):原型: int pthread_create (pthread_t * thread, const pthread_attr_t * attr,void * ( * start) (void * ), void * arg);
生產(chǎn)者-消費者問題中創(chuàng)建的線程:
創(chuàng)建producer線程:pthread_create(&th_a, NULL, producer, 0);
創(chuàng)建consumer線程:pthread_create(&th_b, NULL, consumer, 0);
Pthread_create函數(shù)中第一個參數(shù)為指向線程標識符的指針,第二個參數(shù)用來設(shè)置線程屬性,兩個線程該參數(shù)均為NULL,為系統(tǒng)配置的默認屬性;第三個參數(shù)是線程運行函數(shù)的起始地址,最后一個參數(shù)是運行函數(shù)的參數(shù)。當創(chuàng)建線程成功時,函數(shù)返回 0。
②等待線程結(jié)束函數(shù) 原型:extern int pthread_join (pthread_t __th, void * * __thread_return);
第一個參數(shù)為被等待的線程標識符,第二個參數(shù)為一個用戶定義的指針,它可以用來存儲被等待線程的返回值。
生產(chǎn)者-消費者問題中等待結(jié)束的線程:
pthread_join(th_a, &retval); pthread_join(th_b, &retval);
③終止線程 原型:extern void pthread_exit (void * status);函數(shù)參數(shù) status 是指向線程返回值得指針。
2.4.2 互斥鎖函數(shù) 一個進程中的多個線程是共享同一段資源的,由于線程對資源的競爭引出了鎖。互斥鎖用來保證一段時間內(nèi)只有一個線程在執(zhí)行一段代碼。其中mutex是一種簡單的加鎖方法,這個互斥鎖只有兩種狀態(tài),那就是上鎖和解鎖。在某一時刻,只能有一個線程取得這個互斥上的鎖,擁有上鎖狀態(tài)的線程可以對共享資源進行操作,而其他線程在該線程未解鎖之前,會被掛起,直到上鎖的線程解開鎖。
互斥鎖初始化函數(shù):
int pthread_mutex_init (pthread_mutex_t* mutex,
const pthread_mutexattr_t* mutexattr);
第一個參數(shù)為指向互斥鎖的指針,第二個參數(shù)為鎖的屬性,該問題中設(shè)為NULL,為默認分配的屬性。
互斥鎖上鎖函數(shù):
int pthread_mutex_lock(pthread_mutex_t* mutex);
pthread_mutex_lock聲明開始用互斥鎖上鎖,此后的代碼直至調(diào)用pthread_mutex_unlock為止,均被上鎖,即同一時間只能被一個線程調(diào)用執(zhí)行。
條件變量:關(guān)于互斥鎖的一個很顯然的不足之處就是它僅存在兩種狀態(tài):即鎖定和非鎖定。實際上它的這一缺點是可以根據(jù)條件變量通過允許線程阻塞和等待另一個線程發(fā)送信號的方法來改善的,條件變量經(jīng)常與互斥鎖同時使用。
①條件變量初始化函數(shù)。原型:
int pthread_cond_init (pthread_cond_t * cond, const pthread_condattr_t * cond_attr);
第1個函數(shù)參數(shù)表示要初始化的條件變量對象,第2個參數(shù)是條件變量的屬性。生產(chǎn)者-消費者問題中用到兩個條件變量b->notempty和b->notfull。其中b->notempty是緩沖區(qū)滿的時候阻塞生產(chǎn)者線程的條件變量,b->notfull是緩沖區(qū)空的時候阻塞消費者線程的條件變量。兩個條件變量均應初始化。
②線程阻塞函數(shù)。原型:
extern int pthread_cond_wait (pthread_cond_t * cond,pthread_mutex_t * mutex);
第 1 個參數(shù)就是要等待的條件變量,第 2 個參數(shù)則是解鎖的對象。
生產(chǎn)者-消費者中用到的線程阻塞函數(shù):
pthread_cond_wait(&b->notfull, &b->lock);既生產(chǎn)者線程因為循環(huán)緩沖區(qū)滿將自己阻塞到條件變量b->notfull上,同時釋放鎖&b->lock,讓消費者線程去執(zhí)行。
pthread_cond_wait(&b->notempty, &b->lock);既消費者線程因為循環(huán)緩沖區(qū)空將自己阻塞到條件變量b->notempty上,同時釋放鎖&b->lock,讓生產(chǎn)者線程去生產(chǎn)。
③線程喚醒函數(shù):原型:
extern int pthread_cond_signal (pthread_cond_t * cond);
如果沒有線程阻塞到該條件變量上,此調(diào)用相當于空語句,否則用來釋放被阻塞在條件變量 cond 上的一個線程。
生產(chǎn)者-消費者中用到的線程喚醒函數(shù)
pthread_cond_signal(&b->notfull);既喚醒阻塞到條件變量b->notfull上的線程,讓消費者線程繼續(xù)執(zhí)行。
pthread_cond_signal(&b->notempty);既喚醒阻塞到條件變量b->notempty上的線程,讓生產(chǎn)者線程繼續(xù)執(zhí)行。
參考文獻:
[1]余有明著.Linux技術(shù)與程序設(shè)計.北京航天航空大學出版社.
XCOR和維珍銀河是目前全球范圍內(nèi)僅有的兩家宣稱可以為普通人提供亞軌道太空旅行的公司。這種方式可以將飛行器送往離地球表面60至100千米左右的高度,乘客能夠在火箭發(fā)動機熄火和進入大氣層期間體驗到幾分鐘的失重。
墜毀事件第二天,張勇收到來自XCOR總部的三封郵件,聲明XCOR的發(fā)射技術(shù)與維珍銀河有很大不同,并希望他能將這個信息傳遞給在中國已經(jīng)購買太空旅行票的人和潛在客戶。
張勇是探索旅行的CEO。去年年底,他與XCOR簽訂了在中國地區(qū)的太空游票務權(quán)。過去一年中,這可能是它們遭遇的最大一次信任危機。
與30位已經(jīng)購票的客戶溝通之后,張勇并沒有收到任何一個退票要求。“他們大多將太空旅行當做人生中最重要的事情來看待,不會輕易放棄的。”張勇說。
佟京京正是其中之一。8個月前,這位41歲的私人銀行高級客戶經(jīng)理花了10萬美元買下一張XCOR公司的太空旅行票,其中包含因乘客身體條件無法完成旅行而產(chǎn)生損失的保險費用,開始期待在2016年能夠前往距離地面103千米的太空待上6分鐘―如果一切順利的話。
11月4日凌晨,她收到一封來自XCOR首席執(zhí)行官Jeff Greason的郵件。“你們中的大多數(shù)人一定都很想知道,維珍銀河這次事故對XCOR意味著什么。”在這封發(fā)送給所有XCOR購票客戶的郵件中,Jeff Greason花了近一半篇幅去解釋維珍銀河與XCOR發(fā)射技術(shù)之間的差異―XCOR用的Lynx飛船會在飛機跑道上起飛,以及使用液體燃料等技術(shù)特點,決定了它與維珍銀河飛船的火箭發(fā)射方式有本質(zhì)區(qū)別,不會重蹈覆轍。
“維珍的事故提醒XCOR一定會更嚴謹?shù)貙Υ覀兊陌l(fā)射,它已經(jīng)告訴我們會更嚴格要求試飛的次數(shù)和安全性,”佟京京說。當然,她也考慮過自己對“最壞結(jié)果”的承受能力,“如果真的可以讓你選擇死亡地點的話,我覺得太空也是挺酷的。”
從佟京京的這種反應看,她應該屬于張勇和XCOR所想象的“對的買家”。
“我們第一批要找的客戶是那些有太空夢的人,這種夢想可以幫他們克服恐懼,而不是一定要等到項目完全安全了才愿意去嘗試。”XCOR亞洲行政總裁鄧偉賢對《第一財經(jīng)周刊》說。
但這樣的人究竟有多少,并沒有人真正了解。
2013年7月,XCOR在香港設(shè)立亞洲分部,開始在亞洲地區(qū)進行市場推廣和船票銷售。當時,XCOR在歐美地區(qū)已經(jīng)賣出了300張左右的船票。而對手維珍銀河售價25萬美元,體驗形式類似的太空旅行銷售則有超過675位乘客預訂了艙位,但受限于美國的軍用武器禁運條例,它并不能將這個項目賣往中國。(詳見本刊2014年3月31日第296期的封面故事《太空,新商業(yè)時代》)
XCOR對于想要參與太空旅行的人要求并不多,只要超過18歲、身高低于2米、體重不超過125公斤,沒有重大疾病的人都可以參加。但很多人依然有各種各樣的顧慮,這在鄧偉賢看來主要是出于恐懼。
佟京京看起來似乎沒有這樣的恐懼,雖然這一切的發(fā)生其實非常偶然。最初,她只是陪同私人銀行的一位女客戶找到張勇,商談購票的事。見了3次面之后,她的客戶在最終簽協(xié)議時選擇了放棄,而出于“不好意思”以及想要嘗試的沖動,她當場決定自己買下這張票。
“我已經(jīng)去過南極和北極,要再找什么足夠新奇刺激的旅行,確實很難。”佟京京說,她最初做決定時動機并不復雜,但事后回想起來,自己在北京航天航空大學的求學經(jīng)歷,以及父親也從事航天相關(guān)工作,這些背景確實影響了這個決定。
鄧偉賢顯然希望遇到更多像佟京京這樣的買家。他們不僅能夠完成XCOR在亞洲市場的第一批銷售目標,也是自覺的代言人,能夠為后續(xù)銷售打開局面。
“我們在尋找客戶過程中,遇到最多的回應是,‘你們有人飛上去了我就會去。’所以你可以看到,我們的高速成長期會出現(xiàn)在第一批乘客成功返回之后。到時候人們心里的結(jié)就解開了。”鄧偉賢說。
他曾和一位客戶溝通了長達三四個月,但最終因家人擔心,對方還是放棄了。這是他最長的一次溝通經(jīng)歷。但對于那些對太空極度渴望的人,只要跟他們解釋清楚飛行原理和安全性,很順利能讓他們買單。
因此,怎樣找到這批有足夠購買力,又有太空夢的第一批客戶,成為鄧偉賢首先要考慮的事情。
2013年年底,因為明星韓庚的參與,男士護理品牌凌仕贊助的在XCOR總部舉辦的“凌仕太空行訓練營”,獲得很多曝光。盡管韓庚并沒有能通過這次選拔獲得上太空的名額,但考慮到他在中國龐大的粉絲數(shù)量,XCOR也破例給他提供了一次太空旅行的機會。
明星效應引發(fā)的關(guān)注也是鄧偉賢所期待的。他找到了鄧紫棋作為亞洲區(qū)代言人,并安排這位過去一年在中國內(nèi)地迅速成名的香港年輕歌手也在未來參與一次太空旅行。
“雖然鄧紫棋的粉絲大多很年輕,也未必是我們最終的銷售對象,但通過她,會讓更多的人開始談論這件事。那些有太空夢,但不知道存在這樣一種旅行方式的人,也有機會能找到我們。”鄧偉賢說。
作為負責中國內(nèi)地市場的商,張勇也在尋找一些渠道讓更多人能夠知道XCOR。今年6月,他決定將XCOR的太空旅行計劃作為一個可以在線購買的產(chǎn)品放到淘寶旅行上。
張勇并沒有真的期待淘寶能帶來銷售―畢竟僅憑幾張圖文介紹,就令人決定購入近60萬元的旅行產(chǎn)品,聽上去不太現(xiàn)實。但在上線第一天,一位叫盛天行的浙江茶商就全款買下了一張票。
一個月前,張勇又在淘寶上獲得了第二個客戶。借著今年雙12的熱度,張勇決定策劃新一輪的淘寶活動,同時準備在京東商城也開一家旗艦店來銷售太空旅行的船票。
今年XCOR一共給了張勇30張?zhí)章眯写钡匿N售任務,現(xiàn)在已經(jīng)提前完成。這30位客戶從30歲到70歲不等,并且除了那些消費能力強的富豪旅行者,也有一些月薪剛過萬元的普通公司人。
“在我看來,當一個產(chǎn)品跟太空夢想有關(guān)的時候,10萬美元的價格已經(jīng)是最親民的了。”張勇說。
考慮到需要鼓勵更多像佟京京那樣的太空愛好者,鄧偉賢覺得應該給那些還沒有足夠購買能力的人一些機會。他的策略是,通過與一些品牌的商務合作,由品牌方先買下船票,再以各種活動形式將票贈送給那些太空愛好者。對品牌來說,借助太空的概念做營銷也是不錯的選擇。
鄧偉賢和張勇已經(jīng)分別找到了一些房地產(chǎn)開發(fā)商、服裝和手表品牌,以及澳門的賭場品牌。它們購買了一部分的船票,并開始籌劃活動。
張勇還在與電視臺討論制作一檔和宇航員選拔相關(guān)的真人秀節(jié)目。他手上還有6張未銷售的“優(yōu)先宇航員”的船票―它們屬于限量版,將是所有參加XCOR的103千米高度旅行的乘客中最早登上太空的一批。在他看來,電視推廣效果更好,也能讓這幾張“限量”票顯得更有價值。
鄧偉賢已經(jīng)開始期待2015年年初XCOR研制的Lynx飛船試飛,如果試飛能夠按計劃順利進行,他也將在試飛的最后階段飛上太空。試飛成功也可能意味著,全球和亞洲范圍內(nèi)XCOR會吸引更多人加入這一旅程。
而在這一切發(fā)生之前,除了持續(xù)推廣和銷售,他還要維護好30多位已購票的亞洲乘客的心理預期。
“我會告訴他們,現(xiàn)在這種等待體驗特別重要。等待太空船建好、試飛,然后自己登上去,就像一個懷孕的母親看著自己的孩子慢慢成長一樣。”鄧偉賢說。
在現(xiàn)階段,每次XCOR的飛船研制取得一定成果時,他和XCOR總部負責客戶管理的同事,都會向所有購票者更新消息。尤其在維珍事故之后,任何技術(shù)突破的消息,都能維持和增強對方的信心。
這種信息溝通也促使佟京京開始更多關(guān)注太空領(lǐng)域的各種新聞,她甚至已經(jīng)開始規(guī)劃從太空回來之后的生活。“太空培訓、太空健康體檢、太空博物館,這些在中國都還沒有發(fā)展起來,未來應該有很多機會。”