區別:1、go語言使用單線程eventloop處理IO事件,而swoole使用多線程eventloop處理IO事件;2、golang語言層面支持多線程,而swoole語言層不支持多線程;3、go語言有超全局變量,swoole沒有超全局變量。
本教程操作環境:Windows10系統、Swoole4&&GO 1.11.2版、DELL G3電腦
golang 與swoole的區別
1、關于語言
golang使用靜態語言,編寫麻煩,單效率高,多用于io密集型計算
swoole php是動態解釋執行的,語言性能較差,不適合密集計算程序
2、關于IO
golang使用單線程eventloop處理IO事件,多線程協程調度運行用戶代碼
swoole使用多線程eventloop處理IO事件,多進程執行用戶代碼
3、關于協程
golang語言層面支持多線程,使用多線程調度協程,可以實現堆棧文件符共享,但是容易造成數據干擾在使用時需要加鎖機制等
swoole語言層不支持多線程,使用單線程實現協程調度,每個線程數據是單獨的不存在數據干擾。
4、關于運行模式
golang是多線程運行,有超全局變量,有數據干擾問題,可以數據共享
swoole是多進程運行,沒有超全局變量,只有進程級別的變量,沒有數據干擾問題,要自己使用 table等實現數據共享
推薦學習: swoole教程