Java基础----线程池
来源:互联网 发布:返利网 淘宝taosave 编辑:程序博客网 时间:2024/05/16 17:08
package cn.itcast_08;public class MyRunnable implements Runnable {@Overridepublic void run() {for (int x = 0; x < 100; x++) {System.out.println(Thread.currentThread().getName() + ":" + x);}}}
package cn.itcast_08;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/* * 线程池的好处:线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。 * * 如何实现线程的代码呢? * A:创建一个线程池对象,控制要创建几个线程对象。 * public static ExecutorService newFixedThreadPool(int nThreads) * B:这种线程池的线程可以执行: * 可以执行Runnable对象或者Callable对象代表的线程 * 做一个类实现Runnable接口。 * C:调用如下方法即可 * Future<?> submit(Runnable task) *<T> Future<T> submit(Callable<T> task) *D:我就要结束,可以吗? *可以。 */public class ExecutorsDemo {public static void main(String[] args) {// 创建一个线程池对象,控制要创建几个线程对象。// public static ExecutorService newFixedThreadPool(int nThreads)ExecutorService pool = Executors.newFixedThreadPool(2);// 可以执行Runnable对象或者Callable对象代表的线程pool.submit(new MyRunnable());pool.submit(new MyRunnable());//结束线程池pool.shutdown();}}
package cn.itcast_10;import java.util.concurrent.Callable;/* * 线程求和案例 */public class MyCallable implements Callable<Integer> {private int number;public MyCallable(int number) {this.number = number;}@Overridepublic Integer call() throws Exception {int sum = 0;for (int x = 1; x <= number; x++) {sum += x;}return sum;}}
package cn.itcast_10;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;/* * 多线程实现的方式3: * A:创建一个线程池对象,控制要创建几个线程对象。 * public static ExecutorService newFixedThreadPool(int nThreads) * B:这种线程池的线程可以执行: * 可以执行Runnable对象或者Callable对象代表的线程 * 做一个类实现Runnable接口。 * C:调用如下方法即可 * Future<?> submit(Runnable task) *<T> Future<T> submit(Callable<T> task) *D:我就要结束,可以吗? *可以。 */public class CallableDemo {public static void main(String[] args) throws InterruptedException, ExecutionException {// 创建线程池对象ExecutorService pool = Executors.newFixedThreadPool(2);// 可以执行Runnable对象或者Callable对象代表的线程Future<Integer> f1 = pool.submit(new MyCallable(100));Future<Integer> f2 = pool.submit(new MyCallable(200));// V get()Integer i1 = f1.get();Integer i2 = f2.get();System.out.println(i1);System.out.println(i2);// 结束pool.shutdown();}}
0 0
- Java基础-线程池
- Java基础----线程池
- Java:线程池基础
- java线程池(一) -- 线程基础
- java基础__线程池
- JAVA 并发基础-线程池
- Java基础之线程池
- Java并发基础(二)-线程池基础
- 不惑JAVA之JAVA基础 - 线程池
- 线程之一:JAVA线程基础
- 线程之一:JAVA线程基础
- Java线程池的基础应用
- Java 基础之线程池的必要性
- Java基础:多线程之线程池
- Java基础--线程池的应用
- JAVA基础(20) ExecutorService线程池讲解
- java基础--线程池的使用
- java基础巩固---线程池ExecutorService
- BaseWindow简单windows窗口实例
- 最优化之最速下降法
- 阿里云产品分析(5):阿里云大数据处理工具DPC可用性分析与案例
- 关于 vc编译程序 脱离 vc环境运行的问题 (新手)
- oracle 11g rac+centos6.5
- Java基础----线程池
- 阿里云产品分析(6):马云谈阿里云战略
- iOS Parse Crash Log
- 【web++_第三阶最后四集_(1)富文本编辑器_百度UeDitor】
- java导出Excel的工具分享
- iOS的持续集成
- cocos2d-x学习之3.3
- unity3d 切换场景不销毁对象池中的物体方案
- Python学习之字典与控制语句