A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.多线程的实现有几种方式?实现步骤分别是怎样的?
两种方式:1、通过继承Thread类,实现run()方法,创建子类对象,调用start()方法。
2、通过实现runnable接口,覆盖重写run()方法,创建线程传入Runnable类对象,调用start()方法。

2.继承Thread类和实现Runnable接口有啥区别?实现Runnable接口的优势体现在哪里?
Thread类封装了对象个执行方法;Runnable将执行方法抽取出来。
Runnable接口优势是解耦。


3.线程安全问题时怎么产生的?如何解决线程安全问题,有哪几种方式?
共享一个线程任务的时候,涉及到多个线程操作(修改、写的操作)一个全局的或者静态的资源数据的时候会发生,数据不符合预期,数据错误。
使用同步代码块、和同步方法;

4.sleep()方法和wait()方法的区别?
sleep不释放锁,wait()释放锁

5.线程有几种状态?他们之间是如何转化的?
新建状态 new
运行状态 Runnable
阻塞状态 blocked
无限等待期 waiting
计时休眠期 time_waiting
死亡状态 terminated

新建后去抢占锁资源,如果抢到进入运行状态,没有抢到的进去阻塞状态

lijionghua
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马