swoole是php的非同步並行擴充套件,有點像node.js,但swoole既支援同步又支援非同步,比node更強大。swoole擴充套件是基於epoll高效能事件輪詢,並且是多執行緒的,效能非常好。
swoole除了提供網路server/client的功能之外,還提供了task非同步任務管理器,可以使你的程式中某些處理慢的函式非同步去執行。
本文說下如何使用swoole擴充套件。
swoole僅支援linux/freebsd/mac,如果你使用的是windows系統,請安裝乙個虛擬機器,virtualbox/vmware都可以。然後在虛擬機器裡安裝linux。
swoole已經加入到php的官方擴充套件庫中,所以在linux系統裡只需要執行
pecl install swoole即可安裝。安裝完後修改php.ini,加入extension=swoole.so。然後檢視php -m 或者 phpinfo,如果出現swoole證明安裝成功了。
然後執行:$serv = new swoole_server("127.0.0.1", 9501);
$serv->on('connect', function ($serv, $fd));
$serv->on('receive', function ($serv, $fd, $from_id, $data) );
$serv->on('close', function ($serv, $fd) );
$serv->start();
php server.php
使用telnet連線到你的伺服器:
是不是非常簡單,僅僅11行**就建立了乙個非同步高併發的tcpserver,通過底層的網路來進行資料收發。接下來就是你就可以做你想要做的事情了,即時聊天,檔案收發,通訊等等。telnet 127.0.0.1 9501
> hello world
> swoole: hello world
為PHP新增swoole非同步並行擴充套件
1.確認安裝環境 2.安裝與配置 2.11 pecl安裝swoole擴充套件 pecl不可用的請確認php安裝目錄的bin目錄已加入系統變數 pecl install swoole2.12編譯安裝swoole擴充套件 cd swoole phpize configure make make inst...
非同步函式的序列與並行
通過返回乙個物件的形式,實現對非同步函式進行序列 並行 全執行完畢的操作 實現如下 const queue 判斷是否全部完成 const then callback if task list.length 1 task 二次封裝為合適的非同步函式 const async fn 新增任務 const ...
同步非同步,併發並行概念的理解
同步與非同步 同步 傳送乙個請求,等待返回,然後再傳送下乙個請求 非同步 傳送乙個請求,不等待返回,隨時可以再傳送下乙個請求 同步可以避免出現死鎖,讀髒資料的發生,一般共享某一資源的時候用,如果每個人都有修改許可權,同時修改乙個檔案,有可能使乙個人讀取另乙個人已經刪除的內容,就會出錯,同步就會按順序...