前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 多线程快速入门

java 多线程快速入门

作者头像
斯文的程序
发布2019-11-07 17:18:10
3330
发布2019-11-07 17:18:10
举报
文章被收录于专栏:带你回家

这里将了解以下信息:

1.线程与进程

2.为什么要使用多线程?

3.多线程应用场景

4.多线程创建方式

5.线程生命周期

6.面试总结

一、线程与进程

每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。

使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能加快,在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。

如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换,更多的线程需要更多的内存空间,线程的中止需要考虑其对程序运行的影响。通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生。

总结:进程是所有线程的集合,每一个线程是进程中的一条执行路径。

二、为什么要使用多线程?

比如搬运东西,如果一个人一小时只能般一块砖,那么100个人是不是在一个小时可以班100块砖?

多线程就是多个人同时进行操作!为什么用多线程,就是提高效率。节省时间!

总结:为了提高程序运行的效率!

三、多线程应用场景

看了第二点之后,这个场景大多是应用在消耗时间长的方面,读取文件,一个线程读取完毕的时间要 一个小时,那么把文件拆分,用多个线程同时读取。是不是快很多,还有发短信,插数据到数据库等操作!

总结:为了提高程序运行的效率!

四、多线程创建方式

1.继承 Thread 类

2.实现 Runnable 接口

3.使用匿名内部类创建

这里有三种创建线程的方法,到底哪一种更好呢?

总结:实现Runnable 接口的方法更好,因为java 是单一继承,不能多重继承。实现接口 还可以继承其他的方法,但是继承Thread 类,就不能继承其他类了。

五、线程的生命周期

总结:总共有五个状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态

新建状态:

就是 new 一个 如何ThreadOne 线程新建。还没调用start 之前。

就绪状态:

调用start 方法后为就绪状态

运行状态:

CPU为这个线程分配资源 运行状态

阻塞状态: 1>线程通过调用sleep方法进入睡眠状态; 2>线程调用一个在I/O上被阻塞的操作,即该操作在输入输出操作完成之前不会返回到它的调用者; 3>线程试图得到一个锁,而该锁正被其他线程持有; 4>线程在等待某个触发条件;

死亡状态:

1) run方法正常退出而自然死亡, 2) 一个未捕获的异常终止了run方法而使线程猝死。

注意阻塞状态 不是死亡状态,判断线程的 是否死亡 可以用 isAlive 方法,如果返回为True 则线程为或者,如果为false 则线程死亡。

面试题总结:

1.线程与进程的区别?

答:进程是线程的集合,每一个线程都是一个进程的执行路径。

2.创建线程有哪几种方式,用那种更好?

答:有三种,分别是 继承Thread 类,实现Runnable接口,匿名内部类创建。用事先Runnable 接口比较好,因为java 是单一继承,不能多重继承,实现Runnable 接口,可以继承,实现其他的类。不受次限制。

3.启动线程是调用什么方法?

答:调用start 方法。

4.调用start 方法也是执行run 方法内部的代码,为什么不直接调用run 方法?

答:调用start 方法是启动线程,而调用run 方法只是 使用实例调用方法而已。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档