我正在使用pthread庫在Linux中的多線程服務器應用程序上工作。對於每個連接的客戶端有兩個線程,因爲我從設備和一個線程進行兩個連接有依賴於other.until滿足一個特定的條件第一個線程循環不斷在一個while循環。當條件滿足第二個線程設置標誌和第一個線程的基礎上打破了while循環並執行所需的任務。如何有效地阻止線程,直到滿足特定條件
在線程中不斷運行While循環,直到滿足特定條件爲止。如果不是,請指定更好的方法。
我正在使用pthread庫在Linux中的多線程服務器應用程序上工作。對於每個連接的客戶端有兩個線程,因爲我從設備和一個線程進行兩個連接有依賴於other.until滿足一個特定的條件第一個線程循環不斷在一個while循環。當條件滿足第二個線程設置標誌和第一個線程的基礎上打破了while循環並執行所需的任務。如何有效地阻止線程,直到滿足特定條件
在線程中不斷運行While循環,直到滿足特定條件爲止。如果不是,請指定更好的方法。
您已經在使用pthreads,請閱讀: http://linux.die.net/man/3/pthread_cond_wait (或其他任何pthreads的同步機制)。
一般而言,while循環會不必要地浪費CPU週期。
使用'mutex'和'condition'。 –
*在線程中持續運行While循環,直到滿足特定條件爲止。*編號創建信號量。讓第二個線程在該信號量中調用'sem_wait()'。然後當第一個線程滿足條件時,讓它調用'sem_post()'。 或者只是使用一個線程。 –
您能否指定'特定'條件是什麼?你想等待文件/套接字讀取或寫入?或者它是在另一個線程中設置的「標誌」?你是否正在等待一個(簡單)條件或者你的情況更復雜(如從一個文件中讀取,寫入套接字以及另一個線程中的標誌)?如果您發佈源文件(部分),它也會有所幫助。 –