架构师进阶课程之多线程

笔者新建了一个QQ群:571278542 。欢迎大家加入!

本篇文章主要是弄清楚下面的问题:
1、为什么使用多线程?多线程的应用场景?
为了提高程序的效率。
分批发送短信、邮件、迅雷下载等等。

2、进程和线程的区别?
进程是线程的集合,线程是进程的一条执行路径。

3、多线程的创建方式?
1)、继承Thread
2)、实现Runable接口
3)、匿名内部类
4)、java并发包下的callable
5)、线程池(实际开发中使用它)

4、是继承Thread类好还是实现Runable接口好?
Runnable接口好,因为实现了接口还可以继续继承。继承Thread类不能再继承。

5、启动线程是使用调用start方法还是run方法?
开始执行线程 注意 开启线程不是调用run方法,而是start方法。
调用run只是使用实例调用方法。

6、什么是用户进程?什么是守护线程?二者区别?
java中有两种线程,一种是用户线程,一种是守护线程。
用户线程是指用户自定义创建的线程,主线程停止,用户线程不会停止。
守护线程是 当进程不存在或者主线程停止,守护线程也会被停止,自动销毁。比如GC线程就是守护线程,当主线程停止的时候,GC线程也停止了。

7、现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行 ?

提示:主要是使用线程中的join方法!

join方法作用是让其他线程变为等待,直到当前线程执行完毕,才释放。
thread.join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。

8、什么是线程安全问题?
当多个线程共享同一个全局变量,做写操作的时候,可能会受到其他线程的干扰,导致数据有问题,这种现象叫做线程安全问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值