看著執行過程,對中斷執行緒的一點理解

2021-10-09 21:39:56 字數 1284 閱讀 3502

關於多執行緒  中斷執行緒 的理解:

public static void main(string args) catch (interruptedexception e) 

system.out.println("main:end");

} static class athread extends thread catch (interruptedexception e)

system.out.println("athread:給bthread interrupt 前");

bthread.interrupt();

system.out.println("athread:給bthread interrupt 後");

} }static class bthread extends thread catch (interruptedexception e)

}} }

執行結果:

main:start

main thread sleep 前

athread:start

athread:給bthread join 前

bthread:start

bthread:hello n-1

bthread:hello n-2

bthread:hello n-3

bthread:hello n-4

bthread:hello n-5

bthread:hello n-6

bthread:hello n-7

bthread:hello n-8

bthread:hello n-9

bthread:hello n-10

athread:呼叫了bthread.join的方法,如果外面的執行緒呼叫了interrupted方法 這個方法馬上就會觸發!

athread:給bthread interrupt 前

athread:給bthread interrupt 後

bthread:bthread class is interrupted

main:end

從以上可以看出 如果在a執行緒中呼叫b執行緒的join方法 (也就是等待b執行緒結束之後a執行緒才會往下執行),而如果外面主線程又呼叫了a執行緒的阻斷的方法,這時候在a執行緒裡面就會捕獲到阻斷異常。(我原先看裡面的文章以為是同乙個執行緒的join 和interrupted)

應該說做筆記和理解吧

守護執行緒和普通執行緒的區別就是jvm 要等所有的普通執行緒執行結束之後才會退出,無論是否還有守護執行緒在執行。

對破解過程的一點體會

最近一直在研究軟體破解技術,對於簡單的一些軟體,一般採用爆破即可,也就是在出現關鍵跳的時候通過修改諸如jnz為jz,jne為je等等,繞過程式,從而達到破解的目的。修改這些彙編語句,通常可以直接在彙編軟體模式下,直接將75修改為74即可。或者在彙編模式下進行修改。對於被破解軟體中的一些資源檔案可以通...

對C 編譯過程的一點粗淺的理解

以下只代表我個人粗淺的理解,如有錯誤請多包含,編譯本質上是把人類能理解的字元語言翻譯成機器能理解的機器語言的過程。為此編譯器做了一下幾個工作 編譯一共分為幾個步驟 1.預處理過程 基本上識別c 程式中的一些巨集,例如 ifdef之類的。2.編譯 將字元流語言變成組合語言。3.彙編 將組合語言轉化為機...

對S3C2440片上匯流排 AMBA 的一點理解

最近一直在深入的了解s3c2440的amba匯流排,進展緩慢,大部分時間花在了 開題上,只能擠出一點時間來搞嵌入式。用了一年的鑰匙串壞了,掛鉤斷了,買了乙個新的鑰匙串。下午在換鑰匙串時,一些小鑰匙由於孔太小而鑰匙環太粗,無法掛上去 指甲剪也也因為孔太小掛不上去 較大的鑰匙倒是沒有問題。只把把這些小鑰...