futex

    1熱度

    1回答

    我們在Linux RedHat機器上觀察我們的Java應用程序中的一個Java應用程序中的異常延遲,同時嘗試發佈到外部MQ隊列(它從未發生過)。對盒子和CPU /內存使用情況進行了快速健康檢查,看起來相當不錯。 MQ盒也很好。重新啓動我的Java進程,沒有運氣!之後我們抓住一個快速strace快照,並且它充滿了futex()調用。 想知道是否有人可以提供任何線索,說明爲什麼會出現如此多的鎖(我知道

    4熱度

    1回答

    如何測量互斥量,信號量或futex的延遲?我的意思是兩個事件之間的延遲:解鎖先前鎖定的互斥鎖和互斥鎖。有兩種情況:所有線程/進程在同一個CPU上時(重新調度線程需要多長時間)以及第一個線程在第一個CPU上,第二個線程在第二個時。 Thread1: Lock(Mutex) Critical1 Unlock(Mutex)|<------->| Thread2: while{tryloc

    1熱度

    2回答

    我有一個運行在生產環境中的Python守護進程。它採用7到120個線程。最近最小的實例(7個線程)開始顯示掛起,而所有其他實例從未顯示過這種問題。將strace連接到python進程表明所有線程都調用了futex FUTEX_WAIT_PRIVATE,所以它們可能試圖鎖定某些東西。 你會如何調試這樣的問題? 請注意,這是一個從閃存運行的生產系統,因此磁盤寫入也受到限制。

    2熱度

    1回答

    如果你不知道什麼是futex和linuxthreads-0.9,請不要回復。 我可以在linuxthreads-0.8或-0.9中使用基於互斥體的互斥體與互斥體(它在所有glibc < = 2.2以及所有uClibc中使用互斥體)嗎? 我需要interprocess mutex(pshared one,PTHREAD_PROCESS_SHARED)。 所以,如果線程是由linuxthreads p

    1熱度

    1回答

    我收到一個奇怪的錯誤。我實現了這兩個功能: int flag_and_sleep(volatile unsigned int *flag) { int res = 0; (*flag) = 1; res = syscall(__NR_futex, flag, FUTEX_WAIT, 1, NULL, NULL, 0); if(0 == res && (