第九章作业

一、线程和进程的联系和区别是什么?

  1. 一个进程就是一个执行中的程序,而每一个进程都有自己独立的一块内存空间、一组系统资源,每一个进程的内部数据和状态都是完全独立的。
  2. 线程就是Java程序执行中的单个顺序的流控制。
  3. 联系:多线程指一个进程中可以同时运行多个不同的线程,执行不同的任务。
  4. 区别:系统在产生一个线程,或者在各个线程之间切换的时候,负担要比进程小的多。

二、什么是前台线程,什么是后台线程?

  1. 主线程就是一个前台线程,而后台线程不管线程是否结束,只要所有的前台线程都退出后,进程就会自动终止。
  2. 一般后台线程处理时间较短的任务,而前台线程一般用于处理需要长时间等待的任务。

三、创建线程有几种方法?它们之间的区别是什么?

  1. 创建线程有两种方法,一种是继承Thread类,另一种是使用Runnable接口。
  2. 继承Tread类是通过覆盖原有run方法去调用现在的。而Runnable接口是通过传参调用原有的run方法再调用现有的run方法。

四、线程的生命周期有哪些状态?哪些方法可以改变这些状态?

  1. 线程的生命周期有创建、可运行、运行、阻塞、死亡五种状态。
  2. join方法可使线程暂时停止运行。

五、什么是线程安全?为什么会产生线程安全问题?如何解决线程安全问题?

  1. 当多线程同时访问共享资源(变量),导致线程的安全问题。
  2. 由于可见性以及原子性可能会产生线程的安全问题。
  3. 使用volatile以及synchronized可解决部分安全问题。

六、什么是线程的同步通信?同步通信又是如何实现的?

  1. 线程的同步通信就是当多个线程同时访问一个共享资源的时候,来保证共享数据操作的同步性。
  2. 使用关键字synchronized修饰某个对象后,该对象就成为监视器,此时可保证只有一个线程可以进入,只有一把锁,而只有拿到锁,才可进入这段程序。

七、什么是死锁?

  1. 如果多个线程都处于等待状态,彼此需要对方所占用的监视器所有权,就构成死锁。
  2. 当一个对象拿到A的锁,去等待B的锁,而于此同时,另一个对象先拿到B的锁,去等待A的锁,此时便会构成死锁现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值