摘要:參考地址隊列創(chuàng)建隊列元素將數(shù)據(jù)加入隊列隊列消費隊列的第一個元素隊列是否為空隊列大小
/** * Class Queue * * 參考地址:https://www.jianshu.com/p/ca1bb95ada76 */ class Queue { /** * 隊列l(wèi)ist * * @var array */ protected $items = []; /** * 創(chuàng)建隊列元素 * * @param $element * @param $priority * @return array */ public function queueElement($element, $priority) { return [ "element" => $element, "priority" => $priority ]; } /** * 將數(shù)據(jù)加入隊列 * * @param $element * @param null $priority * @return array */ public function enqueue($element, $priority = NULL) { $queueElement = $this->queueElement($element, $priority); if ($this->isEmpty() || $priority === NULL) { array_push($this->items, $queueElement); } else { $add = false; foreach ($this->items as $key => $value) { if ( $priority < $value["priority"] ) { array_splice($this->items, $key, 0, [$queueElement]); $add = true; break; } } if (! $add) { array_push($this->items, $queueElement); } } return $queueElement; } /** * 隊列消費 * * @return mixed */ public function dequeue() { return array_shift($this->items); } /** * 隊列的第一個元素 * * @return mixed */ public function front() { return $this->items[0]; } /** * 隊列是否為空 * * @return bool */ public function isEmpty() { return !!! count($this->items); } /** * 隊列items大小 * * @return int */ public function size() { return count($this->items); } } $queue = new Queue(); $queue->enqueue("abc", 10); $queue->enqueue("def", 5); $queue->enqueue("hig", 12); $queue->enqueue("ijk", 3); $size = $queue->size(); for ($i = 0; $i < $size; $i++) { $item = $queue->dequeue(); print_r($item); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/31597.html
摘要:六隊列具體實現(xiàn)三寫執(zhí)行隊列的程序根據(jù)設(shè)計,執(zhí)行隊列的程序文件是,它的主要功能是把任務(wù)從隊列表里取出來,并且在后臺執(zhí)行。八服務(wù)器部署一配置咱們執(zhí)行隊列的程序都寫好了,這個程序怎么觸發(fā)呢,當然就要用到的定時任務(wù),每隔一定的時間,執(zhí)行一次。 六、隊列具體實現(xiàn)三:寫執(zhí)行隊列的程序 根據(jù)設(shè)計,執(zhí)行隊列的程序文件是 do_queue.php , 它的主要功能是把任務(wù)從隊列表里取出來,并且在后臺執(zhí)行...
摘要:場景說明用于處理比較耗時的請求,例如批量發(fā)送郵件,如果直接在網(wǎng)頁觸發(fā)執(zhí)行發(fā)送,程序會出現(xiàn)超時高并發(fā)場景,當某個時刻請求瞬間增加時,可以把請求寫入到隊列,后臺在去處理這些請求搶購場景,先入先出的模式命令或往列表右側(cè)推入數(shù)據(jù)客戶端阻塞直到隊列有 場景說明: 用于處理比較耗時的請求,例如批量發(fā)送郵件,如果直接在網(wǎng)頁觸發(fā)執(zhí)行發(fā)送,程序會出現(xiàn)超時 高并發(fā)場景,當某個時刻請求瞬間增加時,可以把請...
摘要:場景說明用于處理比較耗時的請求,例如批量發(fā)送郵件,如果直接在網(wǎng)頁觸發(fā)執(zhí)行發(fā)送,程序會出現(xiàn)超時高并發(fā)場景,當某個時刻請求瞬間增加時,可以把請求寫入到隊列,后臺在去處理這些請求搶購場景,先入先出的模式命令或往列表右側(cè)推入數(shù)據(jù)客戶端阻塞直到隊列有 場景說明: 用于處理比較耗時的請求,例如批量發(fā)送郵件,如果直接在網(wǎng)頁觸發(fā)執(zhí)行發(fā)送,程序會出現(xiàn)超時 高并發(fā)場景,當某個時刻請求瞬間增加時,可以把請...
摘要:場景說明用于處理比較耗時的請求,例如批量發(fā)送郵件,如果直接在網(wǎng)頁觸發(fā)執(zhí)行發(fā)送,程序會出現(xiàn)超時高并發(fā)場景,當某個時刻請求瞬間增加時,可以把請求寫入到隊列,后臺在去處理這些請求搶購場景,先入先出的模式命令或往列表右側(cè)推入數(shù)據(jù)客戶端阻塞直到隊列有 場景說明: 用于處理比較耗時的請求,例如批量發(fā)送郵件,如果直接在網(wǎng)頁觸發(fā)執(zhí)行發(fā)送,程序會出現(xiàn)超時 高并發(fā)場景,當某個時刻請求瞬間增加時,可以把請...
摘要:環(huán)形隊列為充分利用向量空間,克服假溢出現(xiàn)象的方法是將向量空間想象為一個首尾相接的圓環(huán),并稱這種向量為循環(huán)向量。雙端隊列截止目前我們所實現(xiàn)的隊列都是在隊尾入隊,隊首出隊的結(jié)構(gòu)。 什么是隊列 隊列是另外一種遵循先進先出原則的線性數(shù)據(jù)結(jié)構(gòu)。隊列有兩端可供操作,一端出隊,一端入隊。這個特點和棧不同,棧只有一端可以用來操作。入隊總是在后端,出隊在前端。 常見操作 enqueue -> 入隊 d...
閱讀 3642·2021-11-15 11:37
閱讀 2311·2021-09-24 10:39
閱讀 2424·2021-07-25 21:37
閱讀 1407·2019-08-30 15:56
閱讀 2575·2019-08-30 15:55
閱讀 944·2019-08-30 15:54
閱讀 2117·2019-08-30 14:21
閱讀 848·2019-08-30 11:24