黑马程序员技术交流社区

标题: 多线程 [打印本页]

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

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

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

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

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





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2