現在java線程編程應用廣泛嗎?哪些時候適合或必須要用多多線程編程呢?多線程的工作原理是怎樣的呢?求大神們指導指導,謝了!
(1)線程的工作場景主要有兩條:
一個是並發操作,避免阻塞和更有效利用資源。典型的例子有:在長時間工作的程序中使用工作線程避免界面失去響應。在網絡下載程序中,使用多個線程提高對網絡的使用效率,更快下載文件。
一個是並行,線程是處理器調度的最小單位。如果你的計算機配置了多個處理器或者內核,那麼可以同時利用多個處理器同時計算,加快問題解決的速度。
(2)多線程的工作原理:
對於單處理器系統,操作系統會輪流調度每個線程執行一小段時間,然後切換另一個線程,在切換的時候,保存當前線程使用的寄存器上下文和堆棧,並且在下次調度的時候恢復。這樣線程中的程序感覺不到自己被中斷過。對於多處理器系統,操作系統會將不同的線程調度給多個處理器,讓它們並行執行。