好消息,百度网盘专业搜索网站上线了
打开瞧一瞧:
http://bitar.cn
package com.thread;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* 多线程执行有返回值的处理
* @author Administrator
*
*/
public class ThreadResultExecutor {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
ExecutorService exec=Executors.newFixedThreadPool(50);
CompletionService<String> serv = new ExecutorCompletionService<String>(exec);
//模拟,一个对象tt,在多个线程中使用,是否会影响相互的值
for (int i = 0; i < 50; i++) {
serv.submit(new runTest<String>("aa"+i));
}
for (int i = 0; i < 50; i++) {
serv.submit(new runTest<String>("bb"+i));
}
System.out.println("start");
// for (int i = 0; i < 50; i++) {
// try {
// //serv.take();
// System.out.println(serv.take().get());
// //System.out.println(serv.take().get());
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
exec.shutdown();//此方法等待处理完毕后再释放
//System.exit(0);
}
}
class runTest<String> implements Callable<String>{
private String tt;
@Override
public String call() throws Exception {
Thread.currentThread().sleep(2000);
System.out.println( tt+"="+Thread.currentThread().getId());
return (String) (tt+"="+Thread.currentThread().getId());
}
public runTest(String tt){
this.tt=tt;
//ttt.set(tt);
}
}
分享到:
相关推荐
标题中的"通过多线程任务处理大批量耗时业务并返回结果"指的是在Java或其他支持多线程的编程语言中,如何有效地分配工作到多个线程,以便同时处理大量任务,并在任务完成后收集和处理结果。 描述中提到的"当监测到...
因此,通过引入多线程技术,可以使得多个任务并行处理,从而显著提升程序的执行效率。 #### 三、多线程间的同步机制 在多线程环境中,线程之间的数据共享和通信是非常重要的。为了保证数据的一致性和安全性,Java...
"浅谈Java多线程处理中Future的妙用" 在Java多线程处理中,Future是一个非常重要的概念,它可以帮助我们更好地处理并发任务。Future是一个未来对象,里面保存着线程处理结果,它像一个提货凭证,拿着它你可以随时去...
### Java多线程编程实践 #### 一、`concurrent`包提供的集合 在Java中,`java.util.concurrent`包提供了许多高级并发工具类和容器,这些类在多线程环境中能够有效地提升程序的性能与可靠性。下面详细介绍该包中的...
在Java编程语言中,`java.util.concurrent`(JUC)包是处理并发和多线程的核心工具包。这个包提供了一系列高效、线程安全的类和接口,使得开发者能够更好地管理和控制多线程环境。`ThreadDemo.rar`压缩包中的`...
- `Callable`接口定义了异步任务,返回一个结果,与`Runnable`接口的区别在于`Callable`可以有返回值。 6. **CompletableFuture** - 提供了强大的异步编程模型,可以组合多个异步任务,实现链式调用,并支持多种...
`ThreadPoolExecutor`的`submit()`返回`Future`对象,而`ExecutorCompletionService`的`submit()`除了返回`Future`,还支持批量处理结果。 当线程池中的线程抛出异常时,如果使用`submit()`,异常会被捕获并封装在`...
标签“Java concurrent”是指这是一个关于Java并发编程的内容,这通常是面向希望开发多线程应用程序的Java开发者。并发编程允许程序同时处理多个任务,这对于多核心处理器和多处理器系统尤其重要。 文档的一部分...