java多线程

29 阅读2分钟

线程池作用是什么?

线程池提供了一种限制和管理资源的方式。

使用线程池的好处:

1、 可以对线程进行统一的分配、调优、监控,提高线程的可管理性

2、 可以重复利用线程,降低资源消耗

3、 任务到达就可以立即执行,不需要再等线程创建,提高响应速度

创建线程有哪几种方式?

1、 继承thread类:创建一个类继承Thread类,重写Thread类的run()方法,将线程要执行的任务代码放在run()方法中,创建Thread子类实例,调用对象的start()方法启动线程

2、 实现runnable接口:创建一个类实现Runnable接口,实现Runnable接口的run()方法,将线程要执行的任务代码放在run()方法中,创建Thread类的对象,将Runnable实现类的实例作为构造器参数传递给Thread对象,调用Thread对象的start()方法来启动线程,runnable接口没有返回值,也不会抛异常

3、 实现callable接口:创建一个类实现Callable接口,实现Callable接口的call()方法,将线程要执行的任务代码放在call()方法中,创建Callable实现类的实例,并使用FutureTask类来包装Callable对象,FutureTask对象封装了Callable对象的call()方法的返回值,使用FutureTask对象作为Thread对象的target创建并启动新线程,调用FutureTask对象的get()方法来获取子线程执行结束后的返回值,callable接口有返回值,也会抛异常

创建线程池:使用ThreadPoolExecutor创建线程池实例,提交任务给线程池执行,线程池会负责创建线程来执行任务,关闭线程池(在不再需要时)