0
我在C中有個問題嗎? 是否有可能在需要時創建線程並調用線程函數? 可能在需要時使用thread_start例程。 否則,如果我使用pthread_create,該線程將被多次創建並且必須謹慎處理。 請幫幫我。提前致謝。稍後調用線程函數
我在C中有個問題嗎? 是否有可能在需要時創建線程並調用線程函數? 可能在需要時使用thread_start例程。 否則,如果我使用pthread_create,該線程將被多次創建並且必須謹慎處理。 請幫幫我。提前致謝。稍後調用線程函數
您可以使用信號燈,只是阻止線程函數中while循環:
while(1){
sem_wait(my_semaphore);
code_that_needs_to_be_done_in_thread;
}
..和當你需要你的線程,只是簡單的表示它:
sem_post(my_semaphore);
...
other_code;
sem_post(my_semaphore);
...
請說明您的要求有點更清晰。否則,任何人只能回答這個問題的答案是「是的,很有可能」 –
當然,只需編寫線程等待工作,並在收到通知後進行工作。 –
跟隨@DavidSchwartz評論,您可以使用條件變量並廣播它,或者您可以等待I/O。您可以在循環的頂部執行此操作,以便在每次發送條件變量或I/O完成時處理數據或一大塊工作。 – clearlight