今天我們先來看下lua手冊上一個協程實例: 手冊實例: function foo(a) print("foo", a) return coroutine.yield(2 * a) end co = coroutine.create(function ( a, b ) print("co-body", a, b) local r = foo(a + 1) p
*上一期我們主要介紹了協程的相關函數,以及協程的創建。這一期,我們主要來介紹協程怎麼進行協作的,而協作也正是協程的精華所在,小夥伴們,小板凳帶好了嘛?≧◠◡◠≦✌* 生活當中我們做事情經常都是不可能一干到底的。比如,你正在看書,這時候突然來了個電話,或者説你在跟朋友家人視頻聊天,這時候突然沒信號了了。在這種情況下,我們都不得不停下原先手中的事情,去處理其他事情,等其他事情處理完了,再接着原先的事情
大家好,騷氣十足的額,又來了,對,今天我們主要來學習下lua協程的用法,小夥伴們準備好小板凳,準備開車了~~~(ps:好像有點偏題了,不過不重要你們當作沒看見就行(O ^ ~ ^ O)) 協程主要函數: 函數名 入參 返回值 描述 coroutine.create() 接受單個參數,這個參數是coroutine的主函數 返回
相同點: 協程跟線程很接近,但是又有區別,我們先來看看協程跟線程一樣的地方:函數運行時都會開闢自己的獨立棧,局部變量和PC計數器,同時又與其他協程共享全局變量和其他大部分東西,這一點是不是跟線程很像? 不同點: 協程和線程最主要的區別在於:多個線程可以一起跑,他們可以共同去競爭cpu,也就是説多個線程是可以同時並行運行的。而協程就不一樣了,多協程的話,只有一個協程在跑,其他協程就必須在那裏等着,只