
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
多线程编程开发技术的学习与应用是大多数软件编程开发程序员都需要熟练掌握的一个编程技术知识点,而本文我们就通过案例分析来简单了解一下,零基础学多线程入门。
1、多线程相关的概念
并发与并行
并行:在同一时刻,有多个任务在多个CPU上同时执行。
并发:在同一时刻,有多个任务在单个CPU上交替执行。
进程与线程
进程:就是操作系统中正在运行的一个应用程序。
线程:就是应用程序中做的事情。比如:360软件中的杀毒,扫描木马,清理垃圾。
多线程的概念
是指从软件或者硬件上实现多个线程并发执行的技术。
具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。
好处:提高任务的执行性能
2、多线程的创建方式
多线程的实现方式主要有三种
2.1继承Thread类
基本步骤
创建一个类继承Thread类。
在类中重写run方法(线程执行的任务放在这里)
创建线程对象,调用线程的start方法开启线程。
优点:
实现起来比较简单,可以直接使用Thread类中的功能
缺点:
拓展性较差,只能单继承Thread类,任务执行完毕没有返回值,出现异常只能捕获
2.2实现Runnable接口
基本步骤
自定义类实现Runnable接口
重写run()方法,在run()方法中定义线程执行的任务
创建任务类对象
创建线程对象(Thread类对象),把任务类对象作为参数传递给线程类对象
调用start()方法,开启了一条线程
优点:
代码实现比较简单,拓展性较强,还能继承其他类
缺点:
不能直接使用Thread类功能,出现异常只能捕获
2.3实现Callable接口
基本步骤
自定义类实现Callable接口
重写call()方法,在call()方法中定义线程执行的任务
由于Thread构造中接收不了Callable类型对象,因此需要一个中间桥梁对象FutureTask,在它的构造中传入Callable接口的实现类对象,FutureTask的对象是Runable的子类,可以作为Thread构造的参数,这样让Callable实现类对象能够关联线程类对象
创建线程对象(Thread类对象),构造中传入FurureTask对象
调用start()方法,开启了一条线程
注意事项
Callable线程执行完毕会有一个返回值,获取的方式是通过FutureTask对象调用get()方法得到,但需注意成get()方法在拿到返回值前会形成阻塞
优点:
拓展性较强,还能继承其他类,任务执行完毕有返回值,出现异常可以捕获也可以抛出,相对灵活
缺点:
不能直接使用Thread类功能,实现起来较为复杂
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。