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

© xpsyztd 中级黑马   /  2014-9-10 23:04  /  826 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(1)sleep()和wait()的区别
sleep是线程类(Thread)的方法,调用此方法将会导致此线程暂停执行一段时间,把执行机会给其他线程,但是监控状态依然保持,到时会自动恢复。调用sleep不会释放对象锁

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法,本线程才进入对象锁定池准备获得对象锁进入运行状态

(2)同步和一部有何异同,在什么情况下分别使用它们
如果数据将在线程间共享,例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取

当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率

(3)java中有几种方法可以实现一个线程?
在java中有两种实现方法可以实现一个线程,分别是继承Thread类与实现Runnable接口,并用synchronized关键字来修饰同步方法

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马