這段代碼中有幾個阻塞性操作。阻塞性操作是指在等待某個操作完成期間,程序無法繼續執行其他任務的操作。這些操作包括:
form:read()
:這個函數讀取上傳文件的一部分,直到遇到文件的末尾。如果上傳速度較慢,這可能會花費較長的時間。
os.execute('cd ' .. dir_path)
:此函數會將當前工作目錄更改為指定的目錄。在執行此操作時,程序可能會被阻塞。
os.execute('mkdir ' .. dir_path)
:此函數會在文件系統中創建一個新目錄。根據文件系統的性能,這可能需要一定的時間,導致程序阻塞。
io.open(dir_path .. filename, "w+")
:此函數會打開一個文件,以便將上傳的數據寫入其中。如果操作系統過於繁忙,文件打開操作可能需要一定的時間,導致程序阻塞。
file:write(res)
:這個函數將上傳的數據寫入文件。這可能需要一定的時間,特別是當要寫入的數據量較大或磁盤性能較差時,導致程序阻塞。
--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
---
您收到此邮件是因为您订阅了Google网上论坛上的“openresty”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到openresty+...@googlegroups.com。
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/openresty/2023041515133663760310%40163.com。
------------------------------------------------------
卡爾國際資訊有限公司
黃奕璽 Carl Huang
行動電話:0973126602
E-Mail:ca...@cii.com.tw
統一編號:61776594
地址:新北市新莊區新北大道4段185號5樓
------------------------------------------------------
很长时间忘了回复,cpu跑到100%的原因是死循环clone系统调用导致的,clone执行时间稍长就有可能被信号中断,中断后又会重新执行,陷入循环。信号是由timer_resolution控制发出的,所以我把timer_resolution去掉就没再出现过了。