hustoj實現遠端判題的兩種方案

2021-10-10 09:49:10 字數 451 閱讀 8197

hustoj實現遠端判題需要對原始碼作新增或修改,對應流程圖中的紅色部分。

需要在web端建立子執行緒,使其處理表中的遠端提交。同時修改core**,使其不分配執行緒處理表中的遠端提交。這裡選擇共用同一張solution表,是為了避免建立新錶需要還原複雜的呼叫關係。

core由兩部分組成:負責感知任務並分配子執行緒的judged、負責子執行緒本地判題的client。我們可以復用judged分配執行緒時做的併發處理,在呼叫client時新建分支,用不同的client分別處理遠端提交、本地提交。

vjudge介面文件:

迴圈佇列的兩種實現方式 判空與判滿存在區別

第一種實現方式 front 隊頭位置 rear 隊尾下乙個位置 size 元素個數 入隊 尾插,array rear value 出隊 front 迴圈 front rear size front rear 0 include include include typedef struct mycir...

棧的兩種實現

順序表實現棧 include include 順序表實現棧 define test head printf n s n function define default sz 5 typedef char datatype typedef struct seqstack seqstack 棧的初始化 ...

棧的兩種實現

棧的基本實現 include stdafx.h include include define maxsize 64 using namespace std 基於陣列實現的棧 class stack 預設建構函式 int push int data 元素入棧 int pop 元素出棧 bool ise...