多个线程操作同一资源的时候需要注意同步,依靠()实现,实现手段是:同步代码块和同步方法,过多的使用,则会出现死锁问题。

题目
填空题
多个线程操作同一资源的时候需要注意同步,依靠()实现,实现手段是:同步代码块和同步方法,过多的使用,则会出现死锁问题。
参考答案和解析
正确答案: synchronized关键字
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列说法中错误的一项是

A.当线程需要在synchronized块中等待共享数据状态改变时,则需要调用wait()方法

B.当线程需要在synchronized块中等待共享数据状态改变时,则需要调用notify()方法

C.线程在synchronized块中执行完操作后,调用notify()方法通知正在等待的线程重新占有锁

D.wait()和notify()可以实现线程的同步操作


正确答案:B
解析:本题考查线程间交互的概念。当线程进入synchronized块后,共享数据的状态并不一定满足该线程的需要,它要等待其他线程将共享数据改变为所需要的状态后才能继续执行,但由于此时它占有了该对象的锁,其他线程无法对共享数据进行操作,此时线程调用wait()方法进入等待状态,并且暂时释放共享数据的对象锁,其他线程可以获得该对象锁,进入synchronized块进行操作,操作完成之后,再调用notify()方法通知等待的线程重新占有锁,这样就实现了线程的同步操作。由此可见,wait()方法是线程需要在 synchronized块中等待共享数据状态改变时调用,而notify()方法是线程在synchronized块中执行完操作后调用,用来通知正在等待的线程重新占有锁,选项B的说法错误。

第2题:

多线程有几种实现方法?同步有几种实现方法?


正确答案:

 

多线程有两种实现方法,分别是继承Thread 类与实现Runnable 接口

同步的实现方面有两种,分别是synchronized,wait 与notify

wait():使一个线程处于等待状态,并且释放所持有的对象的lock。

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉

InterruptedException 异常。

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤

醒某一个等待状态的线程,而是由JVM 确定唤醒哪个线程,而且不是按优先级。

Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,

而是让它们竞争。

第3题:

实现发电机并列操作的方法通常有()。

A、准同步并列操作

B、同步并列操作

C、非同步并列操作

D、自动操作


参考答案:A,B

第4题:

多线程有几种实现方法,线程间同步有几种实现方法,都是什么?


正确答案: 两种实现方法,一种是继承Thread,另外一种是实现接口Runnable。同步的实现方法有两种,分别是synchronized,wait与notify。用synchronized可以对一段代码、一个对象及一个方法进行加锁。用wait与notify可以使对象处于等待及唤醒方式导致同步,因为每个对象都直接或间接的继承了Object类。

第5题:

惯性式同步器是依靠惯性力实现同步的。


正确答案:错误

第6题:

java 中有几种方法可以实现一个线程?用什么关键字修

饰同步方法? stop()和suspend()方法为何不推荐使用?


正确答案:

 

有两种实现方法,分别使用new Thread()和new Thread(runnable)形式,第一种直接调用

thread 的run 方法,所以,我们往往使用Thread 子类,即new SubThread()。第二种调

用runnable 的run 方法。

有两种实现方法,分别是继承Thread 类与实现Runnable 接口

用synchronized 关键字修饰同步方法

反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处

于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出

真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停

下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资

源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同

时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应

在自己的Thread 类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应

该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()

重新启动线程。

第7题:

多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?


正确答案:

1第一种解答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify

2第二种解答:有人提出也可以这样:多线程 1. 继承 Thread 类 2. 实现 Runnable 接口再 new Thread(YourRunnableOjbect) 推荐 线程同步 1. 用 synchronized 修饰需要同步的方法 2. 用 synchronized 块包围需要同步的语句 3. 使用 java.util.concurrent 包中的各种同步锁

第8题:

Wait.Signal操作可实现进程的同步和共享资源互斥使用,但不能排除死锁。()


参考答案:正确

第9题:

惯性式同步器与常压式同步器一样,都是依靠()作用实现同步的。


正确答案:摩擦

第10题:

多个线程操作同一资源的时候需要注意同步,依靠()实现,实现手段是:同步代码块和同步方法,过多的使用,则会出现死锁问题。


正确答案:synchronized关键字

更多相关问题