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

线程认识与建立方式并发

1,并行与并发工具

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

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

2,线程认识blog

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

  通常状况下启动Java程序,main方法是一个主线程启动的同时会启动垃圾回收的线程接口

3,开启线程的方法进程

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

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

  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取消执行

相关文章
相关标签/搜索