创建线程之三:实现Callable接口】的更多相关文章

1概念 1.1进程 进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 任务管理器中: 1.2线程 线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程.一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序. 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 1.3多线程 就是一个程序中有多个线程在同时执行. 单线程程序:多个任务只能依次执行.只有一个线程, 例:ma…
通过Callable和Future创建线程 i. 创建Callable接口的实现类,并实现call方法,该call方法将作为线程执行体,并且有返回值,可以抛出异常. ii. 创建Callable实现类的实例,使用FutureTask类包装Callable对象,该FuturedTask对象封装了Callable对象的call方法的返回值. iii. 使用FutureTask对象作为Thread对象的target,创建并启动新线程. iv. 调用FutureTask对象的get方法来获得子线程执行结…
1. 前面说的线程的实现是新写一个子类继承Thread: 是将类声明为 Thread 的子类.该子类应重写 Thread 类的 run 方法.接下来可以分配并启动该子类的实例 2. 这里说的方案2是指实现一个接口: 是声明实现 Runnable 接口的类.该类然后实现 run 方法.然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动. 这里我们主要说明2的实现方式………… package cn.itcast_05; public class MyRunnable imple…
1. 前面说的线程的实现是新写一个子类继承Thread: 是将类声明为 Thread 的子类.该子类应重写 Thread 类的 run 方法.接下来可以分配并启动该子类的实例 2. 这里说的方案2是指实现一个接口: 是声明实现 Runnable 接口的类.该类然后实现 run 方法.然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动. 这里我们主要说明2的实现方式………… package cn.itcast_05; public class MyRunnable imple…
定义: 一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源. 使用方法 public void lockDemo() throws InterruptedException, ExecutionException { ExecutorService executor= Executors.newFixedThreadPool(20); Callable callable=new Callable() { @Override public…
在Java开发中,多线程是很常用的,用得好的话,可以提高程序的性能. 首先先来看一下线程和进程的区别: 1,一个应用程序就是一个进程,一个进程中有一个或多个线程.一个进程至少要有一个主线程.线程可以看做是轻量级的进程.(lightweight process) 2,多个线程可以共享进程的资源.进程之间是独立的,一个进程不能共享其它进程的资源. 3,因为系统创建进程需要为其分配空间,所以创建进程的代价高,创建线程的代价则要小得多. 创建线程的方式: Java中创建多线程有3中方式: 1,继承Thr…
线程的启动和运行 方法一:使用start()方法:用来启动一个线程,当调用start方法后,JVM会开启一个新线程执行用户定义的线程代码逻辑. 方法二:使用run()方法:作为线程代码逻辑的入口方法.run方法不是由用户程序来调用的,当调用start方法启动一个线程之后,只要线程获得了CPU执行时间,便进入run方法去执行具体的用户线程代码. start方法用于启动线程,run方法是用户逻辑代码执行入口. 1.创建一个空线程 main { Thread thread = new Thread()…
1.使用Callable接口的方式实现多线程,这是JDK5.0新增的一种创建多线程的方法 package com.baozi.java2; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; public class ThreadNew { public static void main(Strin…
实现Runnable接口的类必须使用Thread类的实例才能创建线程.通过Runnable接口创建线程分为两步: 1. 将实现Runnable接口的类实例化. 2. 建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法. 最后通过Thread类的start方法建立线程. package com.fly.example; public class MyRunnableThree implements Runnable { @Override public void…
实现Runnable接口的类必须使用Thread类的实例才能创建线程.通过Runnable接口创建线程分为两步: 1.将实现Runnable接口的类实例化. 2.建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法. 最后通过Thread类的start方法建立线程. 下面的代码演示了如何使用Runnable接口来创建线程: package mythread; public class MyRunnable implements Runnable { public…