线程

创建线程的两种方式:

一.创建类继承Thread重写run方法,调用start()方法

由于java是单继承的,这导致若继承了线程就无法再继承其他类入复用方法,这在实际开发中很不方便

直接重写run方法来定义线程任务会导致线程与任务存在一个必然的耦合关系,不利于线程的重用。

二. 创建类实现Runnable接口重写run方法,实例化 Thread ( Runnable )类传参Runnable,调用 start() 方法

 

线程的方法:

static Thread currentThread() 获取运行这个方法的线程

static void Thread.sleep(int time) 休眠当前正在执行的线程,time休眠的毫秒数

void Interrupt() 中断阻塞或睡眠

void setPriority(int)设置线程优先级(1-10)默认5

void setDaemon(true) 设置为守护线程

void join() 该方法允许调用这个方法的线程在该方法所属线程上等待(阻塞),直到该方法所属线程结束后方可解除阻塞继续运行

 

线程池 ExecutorService

作用:控制线程数量,重用线程

线程池的创建:

ExecutorService threadPool = Executors.newFixedThreadPool(50)  创建固定个数的线程,懒汉式

线程池的使用:

threadPool.execute(Runnable) 添加一个任务到线程池

threadPool.shutdown() 线程池不再接收新的任务,并且会将当前线程池已缓存任务全部执行完毕后停止

threadPool.shutdownNow() 线程池会立即调用内部线程的中断方法并停止线程池。

上一篇:Android学习笔记:线程池(ThreadPool)


下一篇:在完成所有线程之前从java方法返回