多线程学习-线程认识与创建方式

JAVA学习网 2020-06-29 14:25:11

线程认识与创建方式

1,并行与并发

  并行:同一时刻同时执行方法

  并发:一个时间段执行的方法

2,线程认识

  启动一个进程时,至少会同时启动一个线程,是一个进程分不同模块同时执行不同的工作,

  一般情况下启动Java程序,main方法是一个主线程启动的同时会启动垃圾回收的线程

3,开启线程的方法

  四种:继承thread类,实现Runnable接口,实现callable接口,线程池

  thread类:重写run方法,创建类对象,start()开启线程。

  Runnable接口:重写run()方法,创建thread对象传入实现了runnable接口的对象,也可同时传入线程名称(可选,有默认),start()开启。

  callable接口(依赖futuretask类):FutureTask实现了RunnableFuture接口,RunnableFuture继承Future(动态监控线程,get,isdone,cancel。。)Runnable接口

      重写call()方法,创建FutureTask对象task传入实现callable接口的对象,创建thread对象传入task,也可同时传入线程名,start()开启。

      开启后可调用get获取返回值(此方法阻塞主线程)

  线程池:一个装线程的容器       

      executors工具类,帮助创建线程池。

      executors.new.....线程类型(),返回线程池对象,

      线程池对象.execute方法传入实现了runnable的对象

      

 

 

 

 注意:runnable和callable区别:1.runnable重写run方法,callable重写call方法。2.runnable没有返回值,callable有返回值

    3.runnable不能抛出异常,callable可以。4.runnable不能动态监控,callable有工具类futuretask监控。如get获取返回值,cancel取消执行

 

阅读(2339) 评论(0)