真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java多線程的實(shí)現(xiàn)方式-創(chuàng)新互聯(lián)

Java的多線程是一個(gè)同時(shí)執(zhí)行多個(gè)線程的過程。

十載建站經(jīng)驗(yàn), 網(wǎng)站制作、成都網(wǎng)站建設(shè)客戶的見證與正確選擇。成都創(chuàng)新互聯(lián)公司提供完善的營銷型網(wǎng)頁建站明細(xì)報(bào)價(jià)表。后期開發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。

線程是一個(gè)輕量級的子進(jìn)程,是最小的處理單元。多線程和多進(jìn)程都用于實(shí)現(xiàn)多任務(wù)處理。

但是,我們使用多線程而不是多進(jìn)程,因?yàn)榫€程使用共享內(nèi)存區(qū)域,它們不分配單獨(dú)的內(nèi)存區(qū)域以節(jié)省內(nèi)存,而且線程之間上下文切換比進(jìn)程花費(fèi)的時(shí)間更少。

用一個(gè)東西之前,總得了解一下它的優(yōu)點(diǎn),這樣才有動(dòng)力看下去,這里我們先看一下多線程的優(yōu)點(diǎn)。

Java多線程的優(yōu)點(diǎn)

它不會(huì)阻塞用戶,因?yàn)榫€程是獨(dú)立的,你可以同時(shí)執(zhí)行多個(gè)操作,舉個(gè)栗子,你需要一個(gè)延時(shí),等待三秒鐘再進(jìn)行接下來的操作,如果你使用單線程,它就真的等了你三秒,這三秒,啥都不干,啥都得放一邊,就等。。。這明顯是不可接受的。

你可以同時(shí)執(zhí)行多個(gè)操作,節(jié)省時(shí)間。這里面又牽扯到CPU密集型和IO密集型的問題,可以看這篇文章:關(guān)于多線程的CPU密集型和IO密集型這件事

線程是獨(dú)立的,死掉一個(gè),不影響另一個(gè)。

繼承Thread來實(shí)現(xiàn)多線程

Java提供了一個(gè)超類Thread給我們來extends,一旦繼承了它,就可以通過override 其中的run方法,來實(shí)現(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();
    }
}

通過實(shí)現(xiàn)Runnable接口來實(shí)現(xiàn)

因?yàn)閷τ谝恍╊悂碚f,他們不能繼承Thread來實(shí)現(xiàn)多線程,因?yàn)镴ava規(guī)定同時(shí)只能繼承一個(gè)超類,但是卻可以同時(shí)實(shí)現(xiàn)多個(gè)接口,因此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來實(shí)現(xiàn)一個(gè)Thread

具體代碼如下:

package com.dingtao.test;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
 
public class MyThread implements Callable{
    public static void main(String[] args){
        MyThread t1 = new MyThread();
        FutureTask future = new FutureTask(t1);
        new Thread(future,"呵呵噠").start();
    }
    @Override
    public Integer call() throws Exception {
        System.out.println(Thread.currentThread().getName());
        return null;
    }
}

以上就是java如何實(shí)現(xiàn)多線程的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司其它相關(guān)文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享文章:Java多線程的實(shí)現(xiàn)方式-創(chuàng)新互聯(lián)
本文URL:http://weahome.cn/article/djchoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部