java中runnable和callable有甚么不同
在Java中,Runnable和Callable都是用于多线程编程的接口,它们的不同以下:
1. 返回值:Runnable接口没有返回值,而Callable接口可以返回履行结果。
2. 抛出异常:Runnable接口的run()方法不能抛出异常,而Callable接口的call()方法可以抛出异常。
3. 使用方式:Runnable接口的run()方法只能通过Thread类的start()方法调用,而Callable接口的call()方法可以通过ExecutorService的submit()方法调用。
4. 并发控制:Callable接口可使用Future接口来控制多线程的并发运行,可以获得线程的履行结果、取消线程的履行、等待线程履行终了等操作。而Runnable接口没有这些功能。
综上所述,Runnable适用于不需要获得履行结果的情况,而Callable适用于需要获得履行结果或进行并发控制的情况。
TOP