<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    日出星辰

    線程學(xué)習(xí)筆記【1】----進(jìn)程、線程概念及創(chuàng)建線程

    1.進(jìn)程與線程

       每個(gè)進(jìn)程都獨(dú)享一塊內(nèi)存空間,一個(gè)應(yīng)用程序可以同時(shí)啟動多個(gè)進(jìn)程。比如IE瀏覽器,打開一個(gè)Ie瀏覽器就相當(dāng)于啟動了一個(gè)進(jìn)程。

       線程指進(jìn)程中的一個(gè)執(zhí)行流程,一個(gè)進(jìn)程可以包含多個(gè)線程。

       每個(gè)進(jìn)程都需要操作系統(tǒng)為其分配獨(dú)立的內(nèi)存空間,而同一個(gè)進(jìn)程中的多個(gè)線程共享這塊空間,即共享內(nèi)存等資源。

       每次調(diào)用java.exe的時(shí)候,操作系統(tǒng)都會啟動一個(gè)Java虛擬機(jī)進(jìn)程,當(dāng)啟動Java虛擬機(jī)進(jìn)程時(shí)候,Java虛擬機(jī)都會創(chuàng)建一個(gè)主線程,該線程會從程序入口main方法開始執(zhí)行。

      Java虛擬機(jī)每啟動一個(gè)線程,就給會給該線程分配一個(gè)線程方法棧,用來存放相關(guān)信息(比如局部變量等),線程就在這個(gè)棧上運(yùn)行。所以Java對象中的局部變量都是線程安全的,但實(shí)例變量及類變量由于不是保存在棧中,所以不是線程安全的。

      進(jìn)程有三種狀態(tài):就緒、執(zhí)行、阻塞。

      

    2.線程創(chuàng)建方式

       Runnable方式:(此種方式靈活,推薦使用)

    public class Thread02 implements Runnable {
    
    	public static void main(String[] args) {
    		Runnable r = new Thread02();
    		Thread t1 = new Thread(r, "t1");
    		/** 
    		 * 	   Thread源碼
    		 *     public Thread(Runnable target, String name) {
    					init(null, target, name, 0);
    	                     }
    		 */
    		Thread t2 = new Thread(r, "t2");
    		t1.start(); // 啟動線程t1,處于就緒狀態(tài),等待cpu
    		t2.start(); // 啟動線程t2,處于就緒狀態(tài),等待cpu
    		t1.run(); // 主線程main調(diào)用對象t1的run方法
    	}
    
    	public void run() {
    		System.out.println("thread's name is "
    				+ Thread.currentThread().getName());
    	}
    
    }
    

    運(yùn)行結(jié)果可能是:

    thread's name is t1
    thread's name is main
    thread's name is t2


    Thead方式

    public class Thread03 extends Thread {
    
    	public static void main(String[] args) {
    		Thread03 t1 = new Thread03();     //不注意的情況下寫成了Thread t1=new Thread()   注:Thread03此時(shí)就是一個(gè)線程了
    		t1.start();
    	}
    
    	public void run() {
    		System.out.println("thread's name is "
    				+ Thread.currentThread().getName());
    	}
    }
    

    運(yùn)行結(jié)果:thread's name is Thread-0

    注意:每次程序運(yùn)行時(shí)除了自定義的線程外還有一個(gè)main線程。

     綜合:

    public class Thread01 {
    public static void main(String[] args) {

    Thread thread
    =new Thread();
    thread.start();
    //真正起作用 的是run()
    /**而Thread中的run
    * public void run() {
    if (target != null) {
    target.run();
    }
    }
    所以自己創(chuàng)建的線程要重寫run方法,把要執(zhí)行的內(nèi)容放到run()中,所以要實(shí)現(xiàn)接口或繼承進(jìn)而產(chǎn)生子類
    */

    //創(chuàng)建線程的方式1 thread子類方式(繼承)
    Thread thread1=new Thread(){
    public void run() {
    while(true){
    try {
    Thread.sleep(
    500);//休息500毫秒
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    //Thread.currentThread()得到當(dāng)前線程
    System.out.println("線程1的名字是 "+Thread.currentThread().getName());
    }
    }
    };
    // thread1.start(); //不寫 線程無法啟動


    //創(chuàng)建線程的方式2 runnable方式(實(shí)現(xiàn)) 推薦使用
    Thread thread2=new Thread(new Runnable(){

    public void run() {

    while(true){
    try {
    Thread.sleep(
    300);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    System.out.println(
    "thread2'name is "+Thread.currentThread().getName());

    }
    }});
    // thread2.start();

    //執(zhí)行的是thread
    new Thread(new Runnable(){
    public void run() {
    System.out.println(
    "runnable "+Thread.currentThread().getName());
    }}){
    public void run() { //子類中的run方法覆蓋父類中的run方法,這樣就不會執(zhí)行runnable
    System.out.println("thread "+Thread.currentThread().getName());
    }
    }.start();
    }
    /***
    * 在單個(gè)cpu中執(zhí)行多線程很有可能降低執(zhí)行效率而不是提高 一個(gè)人在不同地方做同一件事情
    */
    }

    posted on 2011-08-27 22:33 日出星辰 閱讀(125) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 大地资源网高清在线观看免费| 亚洲码和欧洲码一码二码三码 | 亚洲1区1区3区4区产品乱码芒果| 国产自国产自愉自愉免费24区| 久久精品国产亚洲AV不卡| 青青久久精品国产免费看| 免费在线观看中文字幕| 日韩毛片一区视频免费| 亚洲不卡无码av中文字幕| 一个人免费观看视频在线中文| 亚洲国产精品成人久久蜜臀 | 天天摸天天操免费播放小视频| 亚洲日本人成中文字幕| 女人18毛片a级毛片免费视频| 亚洲AV综合色区无码一二三区| 国产免费看插插插视频| 一级毛片视频免费| 亚洲综合精品香蕉久久网| 嫩草在线视频www免费观看| 久久99亚洲网美利坚合众国| 黄网站色在线视频免费观看| 亚洲日韩精品A∨片无码加勒比| 四只虎免费永久观看| 久久国产精品免费| 久久综合亚洲色HEZYO社区| 久久WWW免费人成人片| 亚洲成AV人影片在线观看| 亚洲精品线路一在线观看| 男人的天堂网免费网站| 激情五月亚洲色图| 亚洲男人的天堂一区二区| 少妇人妻偷人精品免费视频| 亚洲精品无码永久在线观看男男| 国产成人亚洲精品影院| 1000部无遮挡拍拍拍免费视频观看| 在线亚洲高清揄拍自拍一品区| 夜色阁亚洲一区二区三区| 99在线视频免费| 免费精品国产自产拍在线观看 | 亚洲人成无码www久久久| 99视频精品全部免费观看|