Java的多線程是一個同時執(zhí)行多個線程的過程。
創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南山,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
線程是一個輕量級的子進(jìn)程,是最小的處理單元。多線程和多進(jìn)程都用于實現(xiàn)多任務(wù)處理。
但是,我們使用多線程而不是多進(jìn)程,因為線程使用共享內(nèi)存區(qū)域,它們不分配單獨的內(nèi)存區(qū)域以節(jié)省內(nèi)存,而且線程之間上下文切換比進(jìn)程花費的時間更少。
用一個東西之前,總得了解一下它的優(yōu)點,這樣才有動力看下去,這里我們先看一下多線程的優(yōu)點。
Java多線程的優(yōu)點
它不會阻塞用戶,因為線程是獨立的,你可以同時執(zhí)行多個操作,舉個栗子,你需要一個延時,等待三秒鐘再進(jìn)行接下來的操作,如果你使用單線程,它就真的等了你三秒,這三秒,啥都不干,啥都得放一邊,就等。。。這明顯是不可接受的。
你可以同時執(zhí)行多個操作,節(jié)省時間。這里面又牽扯到CPU密集型和IO密集型的問題,可以看這篇文章:關(guān)于多線程的CPU密集型和IO密集型這件事
線程是獨立的,死掉一個,不影響另一個。
繼承Thread來實現(xiàn)多線程
Java提供了一個超類Thread給我們來extends,一旦繼承了它,就可以通過override 其中的run方法,來實現(xiàn)多線程,具體代碼如下:
package com.dingtao.test; import java.io.*; public class MyThread extends Thread{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) throws IOException { Thread t1 = new MyThread(); Thread t2 = new MyThread(); t1.start(); t2.start(); } }
通過實現(xiàn)Runnable接口來實現(xiàn)
因為對于一些類來說,他們不能繼承Thread來實現(xiàn)多線程,因為Java規(guī)定同時只能繼承一個超類,但是卻可以同時實現(xiàn)多個接口,因此Runnable就更格外受歡迎。具體代碼如下:
package com.dingtao.test; import java.io.*; public class MyThread implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) throws IOException { Thread t1 = new Thread(new MyThread()); Thread t2 = new Thread(new MyThread()); t1.start(); t2.start(); } }
通過Callable來實現(xiàn)一個Thread
具體代碼如下:
package com.dingtao.test; import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; public class MyThread implements Callable<Integer>{ public static void main(String[] args){ MyThread t1 = new MyThread(); FutureTask<Integer> future = new FutureTask<Integer>(t1); new Thread(future,"呵呵噠").start(); } @Override public Integer call() throws Exception { System.out.println(Thread.currentThread().getName()); return null; } }
以上就是java如何實現(xiàn)多線程的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!
網(wǎng)站題目:Java多線程的實現(xiàn)方式
URL網(wǎng)址:http://muchs.cn/article10/pjjgdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站設(shè)計公司、外貿(mào)網(wǎng)站建設(shè)、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)