原创 協程 C/C++ 擴展開發指南(1):內存安全

Swoole4 協程的出現使得 PHP 底層上從原來串行模式變成了併發模式。有很多 PHP 的C/C++擴展在開發時未能考慮到併發性、可重入問題,導致無法在Swoole協程中使用。本文會詳細講解如何編寫協程併發安全的C/C++代碼。 可重入

原创 Swoole 2019 :化繁爲簡、破繭成蝶

Swoole開源項目從2012年開始發佈第一個版本,到現在已經有近7年的歷史。在這七年的時間裏: 提交了8821次代碼變更 發佈了287個版本 收到並解決1161次issue反饋 合併了603次pull request 共有100位開發

原创 編程語言的心智負擔

很多編程語言對比的文章,總喜歡比較各種編程語言的性能、語法、IO模型。本文將從心智負擔這個角度去比較下不同的編程語言和技術。 內存越界 如:C語言、C++(C with class)C/C++可以直接操作內存,但編程必須要面對內存越界問題。

原创 PHP 協程:Go + Chan + Defer

Swoole4提供了強大的PHP CSP協程編程模式。底層提供了3個關鍵詞,可以方便地實現各類功能。 go :創建一個協程 chan :創建一個通道 defer :延遲任務,在協程退出時執行,先進後出 這3個功能底層實現全部是內存操作,

原创 PHP協程:併發 shell_exec

在PHP程序中經常需要用shell_exec執行一些命令,而普通的shell_exec是阻塞的,如果命令執行時間過長,那可能會導致進程完全卡住。在Swoole4協程環境下可以用Co::exec併發地執行很多命令。 本文基於Swoole-4.

原创 PHP的namespace與Python包管理對比

PHP5.3引入了命名空間namespace機制,使PHP之前一直被人詬病的包管理機制得到了很大改善。不過這個機制可不怎麼好用,比較落後,類似於C++。跟Python的包管理機制相比差太多了。 a.php<?phpnamespace a;

原创 PHP的高性能Server框架Swoole發佈C擴展版

PHP的高性能Server框架Swoole已發佈C擴展版本。Swoole使用純C編寫,以PHP擴展的方式提供了一個強大的異步並行Server框架。基於linux epoll+eventfd,不依賴libevent等第三方庫,在Linux下可