服务器之家

服务器之家 > 正文

java多线程入门知识及示例程序

时间:2019-10-26 16:54     来源/作者:java教程网

为什么需要多线程

模型的简化,如某些程序是由多个相对独立任务的运行:

图形界面的出现,输入、输出的阻塞

多核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() {  

        }  
    }  
}
 
标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部