欢迎光临散文网 会员登陆 & 注册

多线程有几种实现方式?有什么区别?

2022-10-18 09:38 作者:网星软件  | 我要投稿

多线程有几种实现方式?有什么区别?

多线程的创建方式有常见的4种

1. 继承Thread类

线程类的创建:创建新类extends Thread类重写run方法

run方法: run方法没有返回值,不能声明抛出异常

线程启动:创建Thread类的子类对象,就是线程对象,通过子类对象调用start方法启动线程运行。

资源共享:不能资源共享

2. 实现Runnable接口

线程类的创建:创建新类implements Runnable接口重写run方法

run方法: run方法没有返回值,不能声明抛出异常

线程启动:创建实现Runnable接口的子类对象【目标对象】,创建Thread类的对象,将实现Runnable接口的子类对象【目标对象】作为Thread类的构造方法的参数传递给Thread类的对象,从而创建出线程对象【Thread类的对象】,Thread类的对象调用start方法启动线程运行

资源共享:能资源共享

3. Callable和Future接口

线程类的创建:创建一个新类implements Callable接口,实现Callable接口时候注意设置泛型类型,重写call方法

call方法:call方法有返回值,返回值类型是实现Callable接口时的泛型类型,call方法的返回值可以通过Future接口提供的get方法得到,可以声明抛出异常

线程启动:创建 Callable接口的子类对象【目标对象】,通过Future接口的子类FutureTask将目标对象封装成Runnable接口类型,通过Thread类的构造方法,关联Future接口的子类FutureTask封装成Runnable接口的子类对象,通过Thread类的构造方法将封装成Runnable接口的子类对象转成Thread类的对象【线程对象】,用Thread类的对象【线程对象】调用start方法启动线程运行。

资源共享:能资源共享,适用于异步编程的情况。

4. 线程池技术【使用的频率较少,所以暂时不考虑】

多线程有几种实现方式?有什么区别?的评论 (共 条)

分享到微博请遵守国家法律