1. 程式人生 > >安全程式設計(四)

安全程式設計(四)

1.什麼是執行緒,什麼是程序?

        程序是執行的應用程式,而執行緒是程序內部的一個執行序列。一個程序可以有多個執行緒,執行緒又叫作輕量級程序。

2.建立執行緒的幾種方法?你最喜歡哪一種?為啥?

        繼承Thread類、實現Runnable介面

        實現Runnable介面更受程式設計師歡迎,因為它不需要繼承Thread類。

3.概述的解釋下執行緒的幾種狀態

       就緒(Runnable):執行緒準備執行,但不一定就能開始執行;

       執行(Running):執行緒執行;

       等待中(Waiting):執行緒處於阻塞狀態,等待外部處理結束;

       睡眠中(Sleeping):執行緒被強制睡眠;

       I/O阻塞(Blocked on I/O):等待I/O操作完成;

       同步阻塞(Blocked on Sychronization):等待獲取鎖;

       死亡(Dead):執行緒完成了執行。

4.sychronized關鍵字

       在Java語言中,每一個物件有一個鎖。執行緒可以使用Sychronized關鍵字來獲取物件上的鎖。

5.死鎖(DeadLock)

       兩個程序都在等待對方執行完畢才能繼續往下執行的時候就發生了死鎖。結果就是兩個程序都陷入了無限的等待中。(用不用我給您講一個例子?)

6.如何確保N個程序訪問N個資源同時又不導致死鎖?

       使用多執行緒的時候,一種非常簡單的避免死鎖的方法就是:指定獲取鎖的順序,並強制執行緒按照指定的順序獲取鎖。