国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于線程池的高并發(fā)訪問考試系統(tǒng)設(shè)計(jì)

2013-10-17 03:19:34許永達(dá)
關(guān)鍵詞:空閑監(jiān)考線程

許永達(dá)

(1.湛江師范學(xué)院信息與教育技術(shù)中心,廣東 湛江 524048;2.重慶大學(xué),重慶 400044)

0 引言

隨著計(jì)算機(jī)的不斷普及,計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,大規(guī)模數(shù)據(jù)庫的建立和維護(hù)日趨成熟,計(jì)算機(jī)考試已成為當(dāng)今高??荚嚨闹匾绞剑?]。

現(xiàn)有考試系統(tǒng),如果考生的數(shù)量相當(dāng)大,同時(shí)訪問服務(wù)器時(shí)就會(huì)產(chǎn)生海量數(shù)據(jù)的情況,例如大量考生同時(shí)生成試卷或者同時(shí)交卷,就會(huì)引發(fā)服務(wù)器響應(yīng)緩慢甚至崩潰,導(dǎo)致考試無法正常進(jìn)行[2]。

為了實(shí)現(xiàn)服務(wù)器的高效并發(fā)訪問,多線程技術(shù)是優(yōu)秀的解決方案。目前,主要有兩種模型:線程-請求模型和線程池模型??荚囅到y(tǒng)的考生生成試卷、保存試卷、交卷等操作的特點(diǎn)是時(shí)間短暫,單個(gè)請求的數(shù)據(jù)量不大,但是多個(gè)請求的數(shù)量巨大且頻繁發(fā)生。線程-請求模型會(huì)為每個(gè)請求創(chuàng)建一個(gè)線程,完成后銷毀,當(dāng)線程被頻繁創(chuàng)建和銷毀,系統(tǒng)效率就會(huì)非常低;線程池模型會(huì)預(yù)先創(chuàng)建一定數(shù)量的線程,每個(gè)線程處理完用戶請求后狀態(tài)改回空閑,以響應(yīng)新的請求,這樣就避免了線程創(chuàng)建和銷毀的開銷,加快了系統(tǒng)響應(yīng)時(shí)間[3]。

因此,線程池技術(shù)可高效地解決考試系統(tǒng)中海量數(shù)據(jù)同時(shí)訪問服務(wù)器時(shí)效率低下的問題,并進(jìn)一步提高了考試系統(tǒng)的性能。本文介紹基于線程池的高并發(fā)訪問考試系統(tǒng)的設(shè)計(jì)框架、主要功能及工作流程和線程池模塊的設(shè)計(jì)。

1 基于線程池的高并發(fā)訪問考試系統(tǒng)設(shè)計(jì)

1.1 線程池技術(shù)

線程池技術(shù)的原理是:服務(wù)器在初始化階段,創(chuàng)建一定數(shù)量的線程放入到線程池中,讓這些線程處于空閑狀態(tài),當(dāng)客戶端請求到來時(shí),調(diào)用一個(gè)線程去處理客戶端的連接請求,任務(wù)完成后,線程狀態(tài)改回空閑,等待下一次任務(wù)的調(diào)用。

線程池可分為線程數(shù)量固定和線程數(shù)量可動(dòng)態(tài)變化兩種類型。

(1)線程數(shù)量固定的線程池,線程池在創(chuàng)建后,線程的數(shù)量不再變化。此類線程池在ATM機(jī)上取款操作等性能相對比較穩(wěn)定的場景應(yīng)用較多。然而其弊端也是顯而易見的,如果系統(tǒng)負(fù)載突然加大,就可能出現(xiàn)無空閑線程可調(diào)度的情況,新請求到來時(shí)只能等待;如果系統(tǒng)負(fù)載較小,就會(huì)有大量的線程空閑,浪費(fèi)系統(tǒng)資源。

(2)線程數(shù)量可動(dòng)態(tài)變化的線程池,其線程的數(shù)量隨負(fù)載變化而變化。如果系統(tǒng)負(fù)載加大到無空閑線程可調(diào)度時(shí),線程池會(huì)按照一定的算法增加線程數(shù)量。但線程數(shù)量不會(huì)無限增加,其上限會(huì)根據(jù)系統(tǒng)性能而定。當(dāng)系統(tǒng)空閑時(shí),線程池會(huì)銷毀部分空閑線程,釋放系統(tǒng)資源,使系統(tǒng)保持高效運(yùn)行[4]。

1.2 系統(tǒng)總體框架設(shè)計(jì)

基于線程池的高并發(fā)訪問考試系統(tǒng)通過使用B/S三層結(jié)構(gòu)進(jìn)行設(shè)計(jì),采用動(dòng)態(tài)變化的線程池控制業(yè)務(wù)邏輯層對數(shù)據(jù)訪問層的操作,采用分考場的監(jiān)考機(jī)分擔(dān)考生端對總服務(wù)器訪問的負(fù)載,實(shí)現(xiàn)考試系統(tǒng)的高并發(fā)、穩(wěn)定運(yùn)行。系統(tǒng)的總體框架設(shè)計(jì)如圖1所示。

圖1 考試系統(tǒng)框架

1.3 系統(tǒng)主要功能及工作流程

基于線程池的高并發(fā)訪問考試系統(tǒng)根據(jù)B/S模式設(shè)計(jì)為三層:用戶界面層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。在業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層之間新增了線程池,控制此二層之間的通信。

(1)用戶界面層:共有教務(wù)員、管理員、監(jiān)考員、考生、教師5個(gè)界面,用戶在系統(tǒng)主界面輸入正確的帳號(hào)密碼后,系統(tǒng)根據(jù)用戶的權(quán)限,打開相應(yīng)的界面。

(2)業(yè)務(wù)邏輯層:用于實(shí)現(xiàn)考試系統(tǒng)的主要功能,包括考生信息管理、教師信息管理等模塊,如圖1所示。下面將詳細(xì)介紹此層各模塊的主要功能:

①考生信息管理、教師信息管理和考場信息管理:可直接從Excel電子表格中導(dǎo)入考生、教師、考場信息,也可在管理界面添加數(shù)據(jù)。以上數(shù)據(jù)及考試結(jié)束后在考生信息管理中生成的考試成績,可導(dǎo)出為Excel,方便教師管理和共享。

②考場安排:系統(tǒng)將根據(jù)考生、教師、考場信息自動(dòng)安排考場中的考生座位、監(jiān)考老師,之后教師可根據(jù)需要再調(diào)整。

③考卷管理:教師登錄系統(tǒng)后,進(jìn)入考卷管理,其功能有試題錄入、編輯、瀏覽,試題參數(shù)設(shè)定,組卷策略設(shè)定。試題參數(shù)主要有知識(shí)點(diǎn)、題型、難度、重要度。組卷策略主要有知識(shí)點(diǎn)范圍、題型、難度范圍、題目分值、題數(shù)[5]。

④智能組卷:該模塊應(yīng)用了遺傳算法,將根據(jù)試題參數(shù)和組卷策略自動(dòng)生成試卷,教師可根據(jù)需要再調(diào)整試卷內(nèi)容[6]。

⑤監(jiān)考下載試卷:開考前半小時(shí),監(jiān)考員可登錄到考試系統(tǒng),下載試卷到相應(yīng)考場的監(jiān)考機(jī)和備用監(jiān)考機(jī),啟動(dòng)考場考試。

⑥考生下載試卷,考生答題:當(dāng)監(jiān)考員啟動(dòng)考試,考生登錄成功后,考生將從考場監(jiān)考機(jī)下載試卷,開始答題??荚嚱缑嬗杏?jì)時(shí)提示。

⑦答卷同步:考生每完成一道題,答卷數(shù)據(jù)都自動(dòng)同步到監(jiān)考機(jī)和備用監(jiān)考機(jī)。若考生機(jī)發(fā)生故障,考生可更換機(jī)器,從監(jiān)考機(jī)下載其已作答的考試數(shù)據(jù),計(jì)時(shí)從中斷處開始計(jì)算,并補(bǔ)時(shí)5分鐘。

⑧考生交卷:考試開始半小時(shí)后考生可交卷,若考試時(shí)間到,系統(tǒng)將自動(dòng)收卷。

⑨考卷上傳:考試結(jié)束后,監(jiān)考員收集所有答卷,校驗(yàn)考試數(shù)據(jù),然后上傳答卷數(shù)據(jù)及考試情況到總服務(wù)器。

⑩客觀題評分:系統(tǒng)將自動(dòng)完成單選、多選、填空題的評分,且填空題可具有多個(gè)備選答案[7]。

?主觀題評分:系統(tǒng)將自動(dòng)完成計(jì)算題、編程題、簡答題的評分,且抽樣15%由教師評分,若人工評分與機(jī)器評分誤差不大,則評分完成,若誤差過大,則修改試卷答案,重復(fù)上述步驟,若誤差仍過大,則此題型改由人工評分[8-9]。

?考生成績管理:綜合主觀題和客觀題的分?jǐn)?shù)生成考生成績,并保存在考生信息中。然后,考生可登錄系統(tǒng)查成績,對成績有異議可申請復(fù)評[10]。

總的來說:監(jiān)考機(jī)從總服務(wù)器下載試卷后,考生從監(jiān)考機(jī)下載試卷,同步答題,交卷到監(jiān)考機(jī),再由監(jiān)考機(jī)上傳試卷到總服務(wù)器,而不是讓考生機(jī)直接訪問總服務(wù)器,提高了考試系統(tǒng)的響應(yīng)速度和并發(fā)處理能力。

(3)線程池:業(yè)務(wù)邏輯層的用戶登錄、監(jiān)考下載試卷、考生下載試卷、答卷同步、考生交卷、考卷上傳的操作,通過線程池的控制高效地訪問數(shù)據(jù)訪問層,其設(shè)計(jì)將在1.4節(jié)中進(jìn)行詳細(xì)闡述。

(4)數(shù)據(jù)訪問層:根據(jù)業(yè)務(wù)邏輯層的請求,對數(shù)據(jù)庫中的考生、教師等數(shù)據(jù)表進(jìn)行操作。

1.4 線程池模塊的設(shè)計(jì)

本考試系統(tǒng)采用的線程池是一種基于任務(wù)隊(duì)列的可擴(kuò)展線程池,它根據(jù)任務(wù)的優(yōu)先級和先后順序處理任務(wù),它的線程數(shù)可根據(jù)任務(wù)的數(shù)量動(dòng)態(tài)變化。線程池運(yùn)行的流程圖如圖2所示。

圖2 線程池運(yùn)行流程圖

基于任務(wù)隊(duì)列的可擴(kuò)展線程池,由主線程、任務(wù)隊(duì)列、線程池、管理線程組成,其中線程池包括主線程池、擴(kuò)展線程池。

(1)主線程負(fù)責(zé)監(jiān)聽多路客戶端的請求,當(dāng)客戶端的請求到達(dá)后,將按照客戶請求的類型放到相應(yīng)的任務(wù)隊(duì)列的隊(duì)尾,并通知喚醒管理線程[11]。

(2)任務(wù)隊(duì)列,其中一共有6種不同類型的隊(duì)列,按優(yōu)先級由高到低排列如下:用戶登錄隊(duì)列、監(jiān)考下載試卷隊(duì)列、考生下載試卷隊(duì)列、考生交卷隊(duì)列、答卷同步隊(duì)列、考卷上傳隊(duì)列。同一隊(duì)列中的任務(wù)按照先進(jìn)先出(FIFO)原則出隊(duì)。

(3)線程池包括主線程池和擴(kuò)展線程池兩部份,由于線程池大小隨著任務(wù)數(shù)量而動(dòng)態(tài)變化,所以選用鏈表作為線程池的數(shù)據(jù)結(jié)構(gòu)。

(4)主線程池是考試系統(tǒng)初始化時(shí)就創(chuàng)建的具有固定數(shù)量線程的線程池,其線程在系統(tǒng)運(yùn)行過程不會(huì)被銷毀。在線程池初始化時(shí),可以使用內(nèi)存池來分配一整塊內(nèi)存給線程池鏈表,內(nèi)存的大小由主線程池中的線程數(shù)量決定,而線程數(shù)量由系統(tǒng)規(guī)模決定。主線程池中的線程將位于線程池鏈表的前端,這樣當(dāng)請求到來時(shí),它們將被優(yōu)先選擇來處理請求。

(5)擴(kuò)展線程池是線程池鏈表中除了主線程池的那部分鏈表。當(dāng)線程池中已沒有空閑線程,而任務(wù)隊(duì)列非空時(shí),就需要?jiǎng)?chuàng)建數(shù)量與任務(wù)隊(duì)列中所有等待處理的任務(wù)總數(shù)相同的擴(kuò)展線程,放到線程池鏈表的末端,并選用其中的擴(kuò)展線程來處理任務(wù)。擴(kuò)展線程數(shù)量的上限由系統(tǒng)性能決定,若已到達(dá)上限且線程池中無空閑線程,任務(wù)隊(duì)列中未處理的任務(wù)只能等待。每個(gè)擴(kuò)展線程都有一個(gè)計(jì)時(shí)器,從線程被創(chuàng)建時(shí)開始計(jì)時(shí)。當(dāng)擴(kuò)展線程在設(shè)定的時(shí)間閾值內(nèi)接受了任務(wù),計(jì)時(shí)器就會(huì)停止計(jì)時(shí)。當(dāng)任務(wù)完成后,計(jì)時(shí)器重新開始計(jì)時(shí)。

(6)管理線程負(fù)責(zé)調(diào)度空閑線程處理任務(wù)及創(chuàng)建、銷毀擴(kuò)展線程。如果任務(wù)隊(duì)列非空,管理線程就會(huì)在線程池鏈表中按照從前端到末端的順序查找是否有空閑的線程。如果有空閑線程,管理線程會(huì)按照任務(wù)隊(duì)列的優(yōu)先級由高到低、同一隊(duì)列中從隊(duì)首至隊(duì)尾的順序,把符合條件的任務(wù)進(jìn)行出隊(duì)處理,讓此空閑線程處理此任務(wù)并改變此空閑線程的狀態(tài),任務(wù)完成后,再把狀態(tài)改為空閑;如果沒有空閑線程,且擴(kuò)展線程的數(shù)量沒有超過上限,就按照擴(kuò)展線程池的說明中提到的算法創(chuàng)建擴(kuò)展線程;如果任務(wù)隊(duì)列為空,管理線程就會(huì)遍歷擴(kuò)展線程池,如果存在空閑的時(shí)間超過時(shí)間閾值的擴(kuò)展線程,就將這些擴(kuò)展線程銷毀[12-13]。

在本系統(tǒng)中設(shè)計(jì)的線程池的數(shù)據(jù)結(jié)構(gòu)定義如下:

2 結(jié)束語

本文介紹了基于線程池的高并發(fā)訪問考試系統(tǒng)的設(shè)計(jì)框架,主要功能及工作流程和線程池模塊的設(shè)計(jì)。該考試系統(tǒng)采取了基于任務(wù)隊(duì)列的可擴(kuò)展線程池控制業(yè)務(wù)邏輯層對數(shù)據(jù)訪問層的操作,分考場的監(jiān)考機(jī)分擔(dān)考生端對總服務(wù)器訪問的負(fù)載等措施,實(shí)現(xiàn)了考生機(jī)對考試系統(tǒng)的高并發(fā)訪問。

[1]韓雪娜,關(guān)紹云.談高校無紙化考試[J].教育探索,2009(11):67-68.

[2]袁冰,楊棖.基于考試任務(wù)的分布式考試系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(10):3530-3533.

[3]孫旭東,韓江洪,劉征宇,等.基于分段的線程池尺寸自適應(yīng)調(diào)整算法[J].計(jì)算機(jī)工程,2011,37(2):43-47.

[4]王俊峰,謝冬青.基于線程池技術(shù)集群接入點(diǎn)的應(yīng)用研究[J].微計(jì)算機(jī)信息,2009(24):133-135.

[5]劉智濃.航空兵部隊(duì)航理智能組卷系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(19):4329-4335.

[6]吳美娟,黃煙波,劉中宇.基于改進(jìn)遺傳算法的智能組卷系統(tǒng)研究[J].計(jì)算機(jī)應(yīng)用與軟件,2007,24(12):192-193.

[7]郭新順,鄭戟明.具有多個(gè)備選答案的客觀題自動(dòng)閱卷系統(tǒng)設(shè)計(jì)[J].電腦編程技巧與維護(hù),2009(14):118-121.

[8]李旗.在線考試主觀題自動(dòng)評閱算法分析與設(shè)計(jì)[J].梧州學(xué)院學(xué)報(bào),2010,20(6):44-50.

[9]田甜,張振國.主觀題自動(dòng)閱卷技術(shù)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(16):3697-3699.

[10]王偉東.一種無紙化考評系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].重慶:重慶大學(xué),2008.

[11]劉新強(qiáng),曾兵義.用線程池解決服務(wù)器并發(fā)請求的方案設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(15):141-143.

[12]宋立昊.基于線程池的Web服務(wù)器實(shí)現(xiàn)和監(jiān)測[D].吉林:吉林大學(xué),2011.

[13]楊開杰,劉秋菊,徐汀榮.線程池的多線程并發(fā)控制技術(shù)研究[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(1):168-170.

猜你喜歡
空閑監(jiān)考線程
恩賜
詩選刊(2023年7期)2023-07-21 07:03:38
基于Excel VBA的考試管理系統(tǒng)設(shè)計(jì)
監(jiān)考時(shí)……
“鳥”字謎
小讀者之友(2019年9期)2019-09-10 07:22:44
彪悍的“寵”生,不需要解釋
淺談linux多線程協(xié)作
WLAN和LTE交通規(guī)則
CHIP新電腦(2016年3期)2016-03-10 14:09:48
監(jiān)考老師
Linux線程實(shí)現(xiàn)技術(shù)研究
監(jiān)考
意林(2010年15期)2010-05-14 16:48:48
子洲县| 长治县| 青阳县| 雅安市| 湛江市| 金乡县| 苏尼特右旗| 泽州县| 禹城市| 金阳县| 阿克苏市| 新龙县| 霍林郭勒市| 增城市| 若羌县| 静宁县| 饶阳县| 河曲县| 武清区| 五原县| 石景山区| 晋中市| 湟中县| 醴陵市| 张家口市| 琼结县| 南阳市| 澄城县| 蒙城县| 革吉县| 锡林郭勒盟| 论坛| 峡江县| 嵩明县| 营口市| 隆回县| 托克逊县| 安吉县| 新巴尔虎左旗| 余干县| 东乡县|