我的情況:爪哇 - 檢查端口在使用中無需連接到它
我在同一時間運行兩個線程,一個線程需要等待,直到一個端口在使用由其他線程,它將在到達使用該端口的點之前通過一定數量的步驟。
我必須承諾的另一個限制是線程在到達打開端口之前經過的步驟與其他線程之間沒有簡單的通信,因爲它是在使用API的JNI本機c代碼中(希望不適用於這個問題,通過一個大的方法,它的運行)
問:
有沒有辦法爲Java能夠等到端口在使用?我已經看過了stackoverflow的解決方案,但他們有幾個問題:
- 創建一個新的套接字將導致該端口被使用,我的另一個線程將無法訪問此套接字。
- 使用netstat解析器從項目中移除可移植性。
如果我忽略了一個stackoverflow答案,請責罵我無法搜索或什麼的,任何東西都會有所幫助。
你可以使用一個易變的布爾標誌,例如'private volatile boolean portInUse',在打開端口之前由線程設置,並在關閉端口後被清除? –
你自己寫了C代碼嗎?如果是這樣,你可以讓它主動告訴你的其他「監視線程」它正在做什麼。 – Xabster