国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java多線程入門知識及示例程序

2019-11-26 15:49:32
字體:
來源:轉載
供稿:網友

為什么需要多線程?

模型的簡化,如某些程序是由多個相對獨立任務的運行:

圖形界面的出現,輸入、輸出的阻塞

多核CPU的更好利用

異步行為的需要

Java多線程的特性:

程序的入口main本身是一個線程

線程是并發的,無序執行的

線程內部是順序執行的

共享數據


Java多線程的風險:

安全風險:由于線程的操作順序是不確定的,某些在單線程下能運行的程序到多線程下會出現意外的結果。

性能風險:服務器的吞吐量、響應性、資源消耗


Java多線程API:

Java可以通過兩種形式創建線程:一、實現Runnable接口,二、繼承Thread類。

繼承thread創建線程示例代碼

復制代碼 代碼如下:

public class ThreadTest extends Thread { 

    public static void main(String[] args) { 
        ThreadTest thread = new ThreadTest(); 
        thread.start(); 
        for (int i=0; i<10; i++) { 
            System.out.println("main:"+i); 
        } 
    } 

    @Override 
    public void run() { 
        for (int i=0; i<10; i++) { 
            System.out.println("thread:"+i); 
        } 
    } 


實現runnable創建線程代碼

復制代碼 代碼如下:

package com.openrdp.thread.api; 

public class RunnableTest implements Runnable { 

    public static void main(String[] args) { 
        RunnableTest runnable = new RunnableTest(); 
        Thread thread = new Thread(runnable); 
        thread.start(); 
        for (int i=0; i<10; i++) { 
            System.out.println("main:"+i); 
        } 
    } 

    @Override 
    public void run() { 
        for (int i=0; i<10; i++) { 
            System.out.println("thread:"+i); 
        } 
    } 


Java線程池技術

Executors獲取exceuctorservice線程池代碼

復制代碼 代碼如下:

package com.openrdp.thread.api; 

import java.util.concurrent.ExecutorService; 
import java.util.concurrent.Executors; 

public class TreadPoolTest { 
    public static void main(String[] args) { 
        ExecutorService threadPool = Executors.newFixedThreadPool(99); 
        TaskThread thread1 = new TaskThread("t1"); 
        threadPool.execute(thread1); 
        TaskThread thread2 = new TaskThread("t2"); 
        threadPool.execute(thread2); 

    } 

    static class TaskThread implements Runnable { 
        String param; 
        public TaskThread(String param) { 
            this.param = param; 
        } 

        @Override 
        public void run() { 

        } 
    } 
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳池县| 长汀县| 井冈山市| 加查县| 马公市| 浮山县| 大邑县| 米脂县| 双城市| 沙坪坝区| 隆子县| 贡觉县| 阿克苏市| 嘉善县| 政和县| 阿克| 洛扎县| 浦县| 大姚县| 安康市| 呼和浩特市| 扬中市| 且末县| 深圳市| 敖汉旗| 瑞安市| 修水县| 易门县| 瑞昌市| 四会市| 左云县| 砚山县| 临颍县| 祁东县| 新蔡县| 略阳县| 临夏县| 长丰县| 镇远县| 高台县| 乐亭县|