创建线程方式4-线程池
使用线程池的 submit()
或 execute()
方法提交任务。
execute(Runnable)
: 提交不需要返回值的任务。submit(Runnable/Callable)
: 提交任务,返回一个Future
对象,可以用来跟踪任务状态和获取结果。调用get()
方法可以获取Callable
返回的值
使用线程池的 submit()
或 execute()
方法提交任务。
execute(Runnable)
: 提交不需要返回值的任务。submit(Runnable/Callable)
: 提交任务,返回一个 Future
对象,可以用来跟踪任务状态和获取结果。调用 get()
方法可以获取 Callable
返回的值Runnable
的 run()
方法没有返回值,也不能抛出受检异常。Callable
是对 Runnable
的增强,解决了这两个问题。
Callable
不能直接被 Thread
类使用,通常需要和 ExecutorService
(线程池)或 FutureTask
配合。
这个和 Thread 基本类似都是最基础的多线程实现方式,唯一不同的点是这个实现的接口模式比较灵活,你的类实现了 Runnable 接口后还能去继承其他的父类
这个是最基础的多线程使用方式了,但不推荐生产使用
第一个是因为Java 类不能支持多继承。如果你的类已经继承了另一个类,就不能再继承 Thread 类了。
第二个是 run 方法 和 Thread 对象 耦合在一起,不符合面向对象的设计原则。
这次我使用的试试 autodl 来部署我的 PaddleOCR ,哎公司不给我配 GPU 服务器