分佈式與高併發系列:一、多線程的意義和使用

線程:輕量級進程,是CPU最小的調度單元

1.併發/高併發
    硬件:CPU、內存、磁盤、網絡
    軟件:最大化的利用硬件資源:線程數量、JVM內存分配大小、網絡通信機制(BIO,NIO,AIO)、磁盤IO
    
    併發和並行:
    
    併發:體現的是服務端承載的吞吐量 單核心CPU也是支持多線程的,cpu的時間片切換
    並行:CPU能同時處理的多個線程
    
    多線程特點:1.異步 2.並行
    
    Java中的線程
        Runnable接口
        Thread類
        Callable/future
    
    線程基礎
    
    線程的生命週期
    狀態:
            阻塞 (線程阻塞都會釋放CPU)
                 WAITING        wait()
                 TIMED_WAITING  sleep(100) 帶有休眠時間的阻塞
                 BLOCKED       沒搶到鎖的狀態
                 IO阻塞
                 
    線程的啓動
        new Thread.start()
        爲什麼不是run?
        

線程啓動過程:
    線程的終止    
        run方法執行結束
        volatile jint_interrupted;    state

 

t1.stop() //及其不推薦,會造成數據的不完整
        
        t1.interrupt();
        Thread.isInterrupted() //復位
        
        interrupt()
            設置一個共享變量的值true
            喚醒處於阻塞狀態下的線程  (阻塞狀態下的線程都會有    InterruptedException來捕獲,並在其中處理)
            
            本質上interrupt()是通過一個共享變量來實現線程間的通信

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章