簡體   English   中英

如何在保險絲中正確添加螺紋

[英]How to add thread correctly in fuse

我正在開發一個基於FUSE的文件系統項目。 我想在其中添加一些預讀。 所以我創建了一個線程來處理這樣的任務,但似乎我做的比我想的要慢。(即使我只是添加一個空閑的線程,它使我的程序變得比沒有它更慢,但是沒有發生當我將此功能添加到我的服務器程序時,不使用保險絲)

我不是簡單地使用fuse_main函數,而是我讀取sshfs的代碼並嘗試使用以下函數自己初始化它,

fuse_parse_cmdline
fuse_mount
fcntl
fuse_new
fuse_daemonize
fuse_set_signal_handlers
fuse_loop_mt

並且沒有添加線程,它運行得很好,但在我添加此線程后

pthread_create(&tid, NULL, test, NULL); // function test is just a while(1){}

它變得更慢(讀取一個100M文件,沒有這個線程它是40s,並且它已經接近100s)

這是關於schedparam還是別的什么呢? 希望你們能給我一些建議,比如我需要檢查的東西。

再次感謝。

您的線程正忙着等待 ,這意味着它將盡可能多地使用CPU功率。 您可能希望在線程中添加一點延遲,以便讓其他線程和進程運行:

while (1)
{
    usleep(1000);  /* Sleep for one millisecond */
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM