package com.threeKindThreads;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class TestCallableThread implements Callable<Integer>{
private int i;
@Override
public Integer call() throws Exception {
// TODO Auto-generated method stub
for(; i<100; i++) {
System.out.println(Thread.currentThread() + " " + i);
}
return i;
}
public static void main(String[] args) {
TestCallableThread thread = new TestCallableThread();
FutureTask<Integer> task1 = new FutureTask<Integer>(thread);
FutureTask<Integer> task2 = new FutureTask<Integer>(thread);
for(int i=0; i<100; i++) {
System.out.println(Thread.currentThread().getName() + " " + i);
if(i == 20) {
new Thread(task1, "Thread1 with return value").start();
new Thread(task2, "Thread2 with return value").start();
}
}
try {
System.out.println("return value = " + task1.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
主要介绍了详解Java Callable接口实现多线程的方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本文给大家分享的是使用Java多线程来实现callable接口的方法,以及使用方法,另外还有一个网友的实例,希望能够对大家掌握Java多线程有所帮助。
Runnable是执行工作的独立任务,但是它不返回任何值,如果你希望任务在完成时能够返回一个值,那么可以实现Callable接口而不是Runnable接口。在Java SE5中引入的Callable是一种具有类型参数的泛型,它的类型参数表示...
计算机后端-Java-Java核心基础-第20章 多线程 18. 创建多线程的方式三:实现Callable接
相信大家对Java编程中如何创建线程已经不陌生了,这篇文章就向朋友们介绍实现callable接口,具体实例详见正文。
主要介绍了Java多线程之Callable接口的实现,Callable和Runnbale一样代表着任务,区别在于Callable有返回值并且可以抛出异常。感兴趣的小伙伴们可以参考一下
多线程机制 1 1、 Runnable接口与Thread类 1 2、 两个创建线程方法的比较 3 3、 几个常用的改变线程状态的方法 3 4、 线程的同步机制 8 ...10、 Callable结合FutureTask的多线程使用(免打扰模式) 24
06线程创建实现 Callable接口avi 07线程创建线程池创建线程avi 08线程创建小结av 09线程生命周期avi 10.线程安全问题什么是线程安全avi 11线程安全同题问题分析avi 12线程安全问题线程安全问题演示avi ................
在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口.(其实准确来讲,应该有三种,还有一种是实现Callable接口,并与Future、线程池结合使用,此文这里不讲这个。
java多线程学习,常见实现线程的方式,继承Thread类,实现Runnable接口,实现Callable接口
java 实现多线程的三种方法 在java中,有三种方法可以实现多线程。第一种方法:继承Thread类,重写run函数。第二种方法:实现Runnable接口,重写run函数。第三种方法:实现Callable接口,重写call函数。本文章将...
包括线程和进程的关系,线程的三种创建方式,继承thread,实现runnable接口,实现callable接口,线程同步,生产者消费者模式
JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。今天我们...
1.继承Thread类,重写run方法 ...后面两种可以归结成一类:有返回值,通过Callable接口,就要实现call方法,这个方法的返回值是Object,所以返回的结果可以放在Object对象中 1. 继承Thread类 public class Thread
JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。
文章目录1、进程与线程2、创建多线程2.1、继承Thread类2.2、实现Runnable接口2.3、使用匿名内部类实现2.4、实现Runnable接口的好处2.5、使用Callable和Future创建线程3、线程的生命周期4、几种特殊线程4.1、join线程...
实现Callable接口4. 使用线程池线程的调度线程的生命周期线程同步1. 方法一:同步代码块2. 方法二:同步方法3. 方法三:Lock(锁):4. 对比三种方法5. 典型例题6. 线程死锁问题线程通信两个方法sleep()方法和wait()...
文章目录神标题引入线程和进程多线程的优势线程创建方式继承Thread类来创建和启动实现Runnable接口重写run方法创建线程类使用 Callable 和 Future 创建线程三种创建线程方式做出对比线程生命周期线程控制join线程...
本篇文章主要介绍了详细解读JAVA多线程实现的三种方式,主要包括继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。有需要的可以了解一下。
程序猿学社的GitHub,欢迎Star ...本文已记录到github,形成...源码分析2.1 第一步,实现Callable接口2.2 FutureTask类结构图2.3 RunableFuture接口2.4 Runnable接口2.5 Future接口2.6 FutureTask源码分析后记 前言 通过上