java线程的创建
線程的創(chuàng)建有兩種方法:
? ? ?1、實(shí)現(xiàn)Runnable借口
? ? ?2、可以繼承Thread類
一、Thread類?
? Thread是Java中實(shí)現(xiàn)多線程的類,Thread中的run()方法實(shí)現(xiàn)了線程的啟動(dòng)。通過(guò)繼承Thread類并覆寫run()方法可實(shí)現(xiàn)一個(gè)線程。Thread類在java.lang包中實(shí)現(xiàn),而這個(gè)包是默認(rèn)載入的,因此不需要import。?
ThreadDome01.java?
程序ThreadDemo01.java中實(shí)現(xiàn)了兩個(gè)線程,但在執(zhí)行時(shí)沒(méi)有同時(shí)執(zhí)行,這是由于雖然在主程序中建立了兩個(gè)線程,但是將兩個(gè)線程順序執(zhí)行。若要并發(fā)執(zhí)行多個(gè)線程,還需要啟動(dòng)操作系統(tǒng)對(duì)多線程的支持,應(yīng)當(dāng)采用Thread類中的start()方法。將主程序改成:?
Java代碼?
注意:,start()會(huì)自動(dòng)去調(diào)用run()方法。不需要覆寫Thread類中的start()方法。?
二、Runable接口?
??? 由于Java是單繼承關(guān)系,如果繼承了Thread類就無(wú)法再繼承其他的類,因此繼承Thread的方法不常用,Java中還提供了一個(gè)實(shí)現(xiàn)多線程的方法,即Runable接口。?
??? 由于Runable接口中只定義了一個(gè)方法,即run(),之前提到多線程需要操作系統(tǒng)的支持,而run()方法是無(wú)法啟動(dòng)的,需要通過(guò)Thread類的start()啟動(dòng)操作系統(tǒng)對(duì)多線程的支持。在Thread類中提供了一個(gè)以Runabel類型參數(shù)的構(gòu)造函數(shù),因此另一個(gè)實(shí)現(xiàn)多線程的方法是先實(shí)現(xiàn)Runable接口,然后再通過(guò)Thread(Runable)構(gòu)建一個(gè)線程,通過(guò)Thread中的start()方法間接啟動(dòng)操作系統(tǒng)對(duì)多線程的支持。如下例子如示:?
ThreadDome02.java?
Java代碼?
總結(jié)
- 上一篇: java中insert函数
- 下一篇: pyghon list指定位置插入字符的