day26 進程

1.內(nèi)存中每個程序叫進程

  • 一個程序中多個線程執(zhí)行
  • cpu中央處理器(英特爾,amd)intel core(核心)i5
  • 瀏覽器下載一個線程,下載器多個線程下載同一個文件
  • 分時調(diào)度:所有線程輪流使用;搶占式調(diào)度:根據(jù)優(yōu)先級

2.thread

  • 繼承thread并重寫run方法,使用start()(開啟線程)虛擬機會自動調(diào)用run方法
  • Thread.sleep(10);也有靜態(tài)休眠方式
  • main是一個棧,新的線程重新開一個棧,棧內(nèi)存均是相對應線程私有
  • 靜態(tài)方法currentthread返回當前線程(Thread.currentThread().getName())
threadText tt=new threadText();
tt.setName("aaa");設置線程名
tt.sleep(1000);休眠,以毫秒為時間單位
tt.start();
----------
public class threadText extends Thread {
    @Override
    public void run() {
        super.run();
        System.out.println(this.getName());
    }
}

3.Runnable 接口實現(xiàn)

  • 耦合降低
SubRunable tt=new SubRunable();
new Thread(tt).start();
----------匿名內(nèi)部類寫法
new Thread(new Runnable() {
    
    @Override
    public void run() {
    }
}).start();

-------
public class SubRunable implements Runnable {
    @Override
    public void run() {
        
        System.out.println(Thread.currentThread().getName()+"run111");
    }
}

4.線程關系

  • 生命周期:new,runable狀態(tài),死亡(stop)
  • 在runable狀態(tài)又有幾種分別:
- 阻塞,正在等待執(zhí)行,cpu調(diào)節(jié),自動
- 休眠(sleep),可被喚醒執(zhí)行或者阻塞,時間決定
- wait等待,可被喚醒(notify()),無限時

5.線程池

  • 重復利用線程池中線程,因為創(chuàng)建線程和銷毀占用大量資源
ExecutorService es = Executors.newFixedThreadPool(2);線程池放兩個線程
        es.submit(new SubRunable());
        es.submit(new SubRunable());
        es.submit(new SubRunable());
es.shutdown();銷毀線程池,一般不用
SubRunable自定義線程對象有runable接口
兩個現(xiàn)線程同時執(zhí)行兩個任務,第三個等待空閑線程

6.callable能拋異常,有返回值

  • runable不能拋異常,沒有返回值
    ExecutorService es = Executors.newCachedThreadPool();
        Future<String> s = es.submit(new TextCall());
        
        System.out.println(s.get());
--------------------
public class TextCall implements Callable<String>{

    @Override
    public String call() throws Exception {
        return "aaa";
    }
}
自由定義返回值類型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,819評論 18 399
  • 一.線程與進程相關 1.進程 ??定義:進程是具有獨立功能的程序關于某個數(shù)據(jù)集合上的一次運行活動,進程是操作系統(tǒng)分...
    Geeks_Liu閱讀 1,804評論 2 4
  • 一.線程安全性 線程安全是建立在對于對象狀態(tài)訪問操作進行管理,特別是對共享的與可變的狀態(tài)的訪問 解釋下上面的話: ...
    黃大大吃不胖閱讀 972評論 0 3
  • 該文章轉(zhuǎn)自:http://blog.csdn.net/evankaka/article/details/44153...
    加來依藍閱讀 7,472評論 3 87
  • 夏季到來了,又到了吃冷面最佳時節(jié)。。 說起冷面,我倒是很有故事呢尤其是會想起,或是從沒忘記的一個人,我的老叔 我老...
    飄飄小仙子閱讀 1,462評論 0 1

友情鏈接更多精彩內(nèi)容