Re: [請益] multithread

看板PHP作者 (缺錢啦 @@)時間19年前 (2005/10/25 20:23), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串4/6 (看更多)
※ 引述《ojinjin (小歐)》之銘言: : ※ 引述《clifflu (缺錢啦 @@)》之銘言: : : 2. 如果 httpd 是使用 apache 的話, 每一個 request 是來自一個 thread (吧 XD) : : 3. php 能夠以 pcntl_fork 的方式產生 process. : : 4. 你也可以透過 execution 的方式, 產生子 process. : : 你也可以決定母 process (.php) 要不要等子 process 跑完. : : 如果你有某些演算法, 需要多個 thread 來增進效能的話, : : 建議用其他語言在 server side 寫出程式由 php 呼叫, : : 另寫一頁面用以取得執行結果, 會比較適合. (尚未完成時顯示執行進度是個好主意) : 感謝您的回覆 :) : 我的狀況是假設在網頁上, ^^^^^^ : 使用者執行了一個需要花數天執行的功能, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 既然如此, #3 跟本不會是個好主意. : 而使用者不需要去等待它完成, : 一開始我只想到 4. 那個做法, : 但是又想能不能全部都利用 php 來完成 :P 可以. php 預設會產生執行檔 (提供作為 script / CGI 之用) windows 預設應該會是 %PHP%\PHP.exe . 若是要執行檔案, 可以當作 argv 傳進去, 例如 %PHP%\php.exe c:\www\some-dir\tmp.php : 環境:windows, apache2, php5 : 3. 似乎不行 : It is not possible to use the function 'pcntl_fork' when PHP is used as Apache : module. You can only use pcntl_fork in CGI mode or from command-line. 用上面的方法呼叫一隻 cmd-line php, 再把那隻 php fork 出另一隻即可. output ? 如我前面所寫, 弄個頁面去讀檔案, 檔案內容由實際在跑的那隻程式產生, (是否透過 template engine 或類似的邏輯就隨你了) 在完成後顯示結果, 否則為 進度即可. 我還是不認為把需要運算數日的東西用 php 寫是個好主意, 又或者, 也許是因為你用 php 寫才需要跑這麼久的 XD -- 鬼壓床怎麼辦 騎上去啊 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.217.134

10/25 20:30, , 1F
同樣, 你可能會需要用到 flock 等函式 請自己念 manual 吧
10/25 20:30, 1F
文章代碼(AID): #13NYF9W6 (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 4 之 6 篇):
0
1
文章代碼(AID): #13NYF9W6 (PHP)