sleep( ) 和 wait( ) 有什么区别?

题目

sleep( ) 和 wait( ) 有什么区别?

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

调用以下哪些方法可以使运行状态的线程进入阻塞状态?( )

A.start( ),yield( ),sleep( ),join( )和wait( )

B.start( ),yield( ),sleep( ),join( ),wait( )和stop( )

C.yield( ),sleep( ),join( )和wait( )

D.yield( ),sleep( ),join( ),wait( )和stop( )


正确答案:C
解析:运行状态的进程如果调用了yield( )方法、sleep( )方法、join( )方法或wait( )方法,或者申请对象锁未果、有更高优先级线程进入调度等,都可进入阻塞状态。阻塞状态的进程在获取到足够的资源后,也可以转入到可运行状态。

第2题:

GiventhatTriangleimplementsRunnable,and:Whichtwostatements,insertedindependentlyatbothlines35and41,tendtoallowboththreadstotemporarilypauseandallowtheotherthreadtoexecute?()

A.Thread.wait();

B.Thread.join();

C.Thread.yield();

D.Thread.sleep(1);

E.Thread.notify();


参考答案:C, D

第3题:

在Java多线程中sleep()和wait()方法,下列说法不正确的是()

A.sleep()方法是使线程停止一段时间的方法

B.在sleep时间间隔期满后,线程立即恢复执行

C.wait()方法用于线程交互

D.使用wait()方法后,线程需要被通知唤醒


参考答案:B

第4题:

如果线程调用下列方法,不能保证使该线程停止运行的是

A.sleep()

B.stop()

C.yield()

D.wait()


正确答案:D
解析:yield()方法的功能是,线程暂停,让出CPU,使同优先级的其他线程运行。如果不存在有机会运行的线程,yield()方法将直接返回,线程继续执行。

第5题:

如果线程调用下列方法,不能保证使该线程停止运行的是( )。A.sleep( )B.stop( )SXB

如果线程调用下列方法,不能保证使该线程停止运行的是( )。

A.sleep( )

B.stop( )

C.yield( )

D.wait( )


正确答案:C
线程的方法中sleep()方法的作用是使比当前线程优先级低的线程运行。该方法使-个线程暂停运行-段固定时间。在休眠时间内,线程将不运行,低优先级的线程将有机会运行。yield()方法为只让给同等优先级的线程运行。如果没有同等优先级的线程是可运行状态,yield()方法将什么也不做,即线程将继续运行。stop()方法是强行终止线程。wait()方法是线程问交互的方法,是使-个线程停止运行,进入等待状态。

第6题:

下列哪个方法可以使线程从运行状态进入到阻塞状态()。

A、start()

B、sleep()

C、yield()

D、wait()


参考答案:BD

第7题:

Whichtwoof statementsaretrue?()

A.Itispossibletosynchronizestaticmethods.

B.Whenathreadhasyieldedasaresultofyield(),itreleasesitslocks.

C.Whenathreadissleepingasaresultofsleep(),itreleasesitslocks.

D.TheObject.wait()methodcanbeinvokedonlyfromasynchronizedcontext.

E.TheThread.sleep()methodcanbeinvokedonlyfromasynchronizedcontext.

F.Whenthethreadschedulerreceivesanotify()request,andnotifiesathread,thatthreadimmediatelyreleasesitslock.


参考答案:A, D

第8题:

在Java多线程中sleep()和wait()方法,下列说法不正确的是()。

A.sleep()方法是使线程停止一段时间的方法;

B.在sleep时间间隔期满后,线程立即恢复执行;

C.wait()方法用于线程交互

D.使用waitI()方法后,线程需要被通知唤醒;


参考答案:B

第9题:

调用线程的下列方法,不会改变该线程在生命周期中状态的方法是( )。

A.yeild()

B.wait()

C.sleep()

D.isAlive()


正确答案:D
解析:本题考查线程的概念。调用线程的 sleep()方法、yeild()方法和wait()方法都会将线程阻塞,而isAlive()是用来测试线程,以确定线程是否活着。该方法如果返回true,则意味着线程已经启动,但还没有结束,并不影响线程的生命周期,所以选项D正确。

第10题:

为了支持压栈线程与弹栈线程之间的交互与同步,应在下画线处填入的选项是( )。

A.this.notify( )

B.interrupt( )

C.this.wait( )

D.sleep( )


正确答案:A
当-个线程使用的同步方法中用到某个变量,而此时有需要其他线程修改后才能符合本线程的需要,那么可以使用wait()方法,wait()方法的作用是使本线程等待,并允许其他线程使用此同步方法。当其他线程使用完后应使用notify()或者notifyAll()方法允许其他线程使用此同步方法。Interrupt()方法的作用是在run()方法执行完之前就消灭此线程,而sleep()方法的作用是延迟-段时间后执行。所以本题是为了支持压栈线程与弹栈线程之间的交互与同步,所以选A。