码迷,mamicode.com
首页 > 编程语言 > 详细

Java并发(思维导图)【dealine2019.08.31】

时间:2019-08-29 18:14:42      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:mamicode   event   ted   http   img   runnable   转换   static   execution   

技术图片

 

 

1,线程状态转换

技术图片

 

无限期等待:

技术图片

 

限期等待:

技术图片

 

 

线程生命流程:

技术图片

 

  

2,实现方式

 技术图片

 

 代码实现样例【三种方式】:

技术图片
package com.cnblogs.mufasa.demo2;

import java.util.concurrent.Callable;

public class test1_Runnable implements Runnable{
    @Override
    public void run() {
        for(int i=0;i<50;i++){
            System.out.println("当前线程:"+i);
        }
    }
}

class test2_Callable implements Callable<String> {
    private int num;
    public test2_Callable(){}
    public test2_Callable(int num){
        this.num=num;
    }
    @Override
    public String call() throws Exception {
        for(int i=0;i<50;i++){
            System.out.println(this.num+"线程:"+i);
        }
        return num+"线程已完成";
    }
}

class test3_Thread extends Thread {
    private int num;
    public test3_Thread(){}
    public test3_Thread(int num){
        this.num=num;
    }
    @Override
    public void run() {
        for(int i=0;i<50;i++){
            System.out.println(this.num+"线程:"+i);
        }
    }
}
View Code

 

技术图片
package com.cnblogs.mufasa.demo2;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class Client {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //实现 Runnable 接口
//        test1_Runnable instance=new test1_Runnable();
//        Thread thread=new Thread(instance);
//        Thread thread1=new Thread(instance);
//        thread.start();
//        thread1.start();

        //实现 Callable 接口
//        test2_Callable instance=new test2_Callable(1);
//        FutureTask<String> ft=new FutureTask<>(instance);
//        Thread thread = new Thread(ft);
//        test2_Callable instance1=new test2_Callable(2);
//        FutureTask<String> ft2=new FutureTask<>(instance1);
//        Thread thread1 = new Thread(ft2);
//
//        thread.start();
//        thread1.start();
//        System.out.println(ft.get());
//        System.out.println(ft2.get());

        //继承 Thread 类
        test3_Thread thread1=new test3_Thread(1);
        test3_Thread thread2=new test3_Thread(2);
        thread1.start();
        thread2.start();

    }
}
View Code

 

 3,

 

Java并发(思维导图)【dealine2019.08.31】

标签:mamicode   event   ted   http   img   runnable   转换   static   execution   

原文地址:https://www.cnblogs.com/Mufasa/p/11430993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!