Lua學習筆記(五) 非搶先式的多執行緒

2021-06-22 18:42:55 字數 726 閱讀 8623

1、 概念

協同程式提供一種協作式的多執行緒。每個協同程式都等於是乙個執行緒。一對yield-resume可以將執行權在不同執行緒之間切換。然而,協同程式與常規的多執行緒的不同之處在於,協同程式是非搶先式的。就是說,當乙個協同程式在執行時,是無法從外部停止它的。只有當協同程式顯示地要求掛起時(呼叫yield),它才會停止。對於有些應用而言,這沒有問題,而對於另外一些應用則可能無法接受這種情況。當不存在搶先時,程式設計會簡單許多。無需為同步的bug而抓狂,在程式中所有執行緒間的同步都是顯式的,只需確保乙個協同程式在它的臨界區域之外呼叫yield即可

a) 載入luasocket庫,require 「socket」

b) 開啟tcp鏈結  socket.connect(host,80)   host即是**

c) 傳送檔案請求

d) 讀取檔案

e) 關閉鏈結

c:close()

a) connection:settimeout

(0)   ——使receive呼叫不會阻塞

4、 luasocket的

select函式可以用於等待一組socket

的狀態的改變,在等待時程式陷入阻塞狀態

Lua 學習筆記(五) 語句

一 賦值 多重賦值 每個值或每個變數之間以逗號分隔 例如 a,b 10,20 lua先對等號右邊的所有元素求值,然後才執行賦值。二 區域性變數和塊 local建立區域性變數,作用域僅限於宣告它們的程式塊。三 控制結構 1.if then else end 例如 2.for 數值型for for va...

Lua 學習筆記(五)函式

函式的定義 在lua中,函式是一種對語句和表示式進行抽象的主要機制。一 函式基本用法 在lua中,1 函式既可以完成某項特定的任務。被視為一條語句 2 也可以只做一些計算並返回結果。被視為一句表示式 格式 function function name body end 等同於 function na...

Lua學習筆記 第五章 函式

在lua中,函式是一種對語句和表示式進行抽象的主要機制。函式既可以完成某項特定 的任務,也可以只做一些計算並返回結果 lua為物件導向式的呼叫也提供了一種特殊語法 冒號操作符。表示式o.foo o,x 的 另一種寫法是o foo x 冒號操作符使呼叫o.foo時將o隱含地作為函式的第乙個引數 乙個l...