日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
java中有哪些實(shí)現(xiàn)多線程的方法

這篇文章將為大家詳細(xì)講解有關(guān)java中有哪些實(shí)現(xiàn)多線程的方法,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

特克斯ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

常用的java框架有哪些

1.SpringMVC,Spring Web MVC是一種基于Java的實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架。2.Shiro,Apache Shiro是Java的一個(gè)安全框架。3.Mybatis,MyBatis 是支持普通 SQL查詢,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架。4.Dubbo,Dubbo是一個(gè)分布式服務(wù)框架。5.Maven,Maven是個(gè)項(xiàng)目管理和構(gòu)建自動(dòng)化工具。6.RabbitMQ,RabbitMQ是用Erlang實(shí)現(xiàn)的一個(gè)高并發(fā)高可靠AMQP消息隊(duì)列服務(wù)器。7.Ehcache,EhCache 是一個(gè)純Java的進(jìn)程內(nèi)緩存框架。

1、lambda表達(dá)式創(chuàng)建線程

使用lambda的形式實(shí)例化線程任務(wù)類,創(chuàng)建線程對(duì)象,并將線程任務(wù)類作為構(gòu)造方法參數(shù)傳入。

package com.kingh.thread.create;

public class CreateThreadDemo5_Lambda {
 
    public static void main(String[] args) throws Exception {
        // 使用lambda的形式實(shí)例化線程任務(wù)類
        Runnable task = () -> {
            while (true) {
                // 輸出線程的名字
                printThreadInfo();
            }
        };
 
        // 創(chuàng)建線程對(duì)象,并將線程任務(wù)類作為構(gòu)造方法參數(shù)傳入
        new Thread(task).start();
 
        // 主線程的任務(wù),為了演示多個(gè)線程一起執(zhí)行
        while (true) {
            printThreadInfo();
            Thread.sleep(1000);
        }
    }
 
    /**
     * 輸出當(dāng)前線程的信息
     */
    private static void printThreadInfo() {
        System.out.println("當(dāng)前運(yùn)行的線程名為: " + Thread.currentThread().getName());
        try {
            Thread.sleep(1000);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

2、使用ExecutorService、Callable、Future實(shí)現(xiàn)有返回結(jié)果的多線程

可以返回值的任務(wù)必須是Callable接口,類似的,沒有返回值的任務(wù)必須是Runnable接口。執(zhí)行Callable任務(wù)后,可以獲得一個(gè)Future對(duì)象,通過調(diào)用get可以獲得Callable任務(wù)返回的Object,然后結(jié)合線程池接口ExecutorService可以實(shí)現(xiàn)傳說(shuō)中有返回結(jié)果的多線程。

import java.util.concurrent.*;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
 
/**
* 有返回值的線程
*/
@SuppressWarnings("unchecked")
public class Test {
public static void main(String[] args) throws ExecutionException,
    InterruptedException {
   System.out.println("----程序開始運(yùn)行----");
   Date date1 = new Date();
 
   int taskSize = 5;
   // 創(chuàng)建一個(gè)線程池
   ExecutorService pool = Executors.newFixedThreadPool(taskSize);
   // 創(chuàng)建多個(gè)有返回值的任務(wù)
   List list = new ArrayList();
   for (int i = 0; i < taskSize; i++) {
    Callable c = new MyCallable(i + " ");
    // 執(zhí)行任務(wù)并獲取Future對(duì)象
    Future f = pool.submit(c);
    // System.out.println(">>>" + f.get().toString());
    list.add(f);
   }
   // 關(guān)閉線程池
   pool.shutdown();
 
   // 獲取所有并發(fā)任務(wù)的運(yùn)行結(jié)果
   for (Future f : list) {
    // 從Future對(duì)象上獲取任務(wù)的返回值,并輸出到控制臺(tái)
    System.out.println(">>>" + f.get().toString());
   }
 
   Date date2 = new Date();
   System.out.println("----程序結(jié)束運(yùn)行----,程序運(yùn)行時(shí)間【"
     + (date2.getTime() - date1.getTime()) + "毫秒】");
}
}
 
class MyCallable implements Callable {
private String taskNum;
 
MyCallable(String taskNum) {
   this.taskNum = taskNum;
}
 
public Object call() throws Exception {
   System.out.println(">>>" + taskNum + "任務(wù)啟動(dòng)");
   Date dateTmp1 = new Date();
   Thread.sleep(1000);
   Date dateTmp2 = new Date();
   long time = dateTmp2.getTime() - dateTmp1.getTime();
   System.out.println(">>>" + taskNum + "任務(wù)終止");
   return taskNum + "任務(wù)返回運(yùn)行結(jié)果,當(dāng)前任務(wù)時(shí)間【" + time + "毫秒】";
}
}

關(guān)于java中有哪些實(shí)現(xiàn)多線程的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


本文標(biāo)題:java中有哪些實(shí)現(xiàn)多線程的方法
本文來(lái)源:http://www.dlmjj.cn/article/ihshdj.html