多个线程操作同一资源的时候需要注意同步,依靠()实现,实现手段是

题目

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

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

第1题:

下面是关于线程的叙述,其中不正确的是:(20)。

A.一般地说,线程自己不拥有资源(也有一点必不可少地资源),但它可以使用其所属进程的资源

B.由于同一进程中的多个线程具有相同的地址空间,所以它们之间的同步和通信也易于实现

C.进程创建于线程创建的时空开销不相同

D.进程切换与线程切换的时空开销相同


正确答案:D
解析:进程切换比线程切换的开销要大。

第2题:

下列说法中错误的一项是

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

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

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

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


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

第3题:

关于操作系统的描述中,正确的是

A.分时器可实现操作系统的多任务调度

B.一个线程可以包括一个或多个执行进程

C.线程通常包括使用的存储空间和寄存器资源

D.进程不需包括使用的存储空间和寄存器资源


正确答案:A

第4题:

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


正确答案:

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

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

第5题:

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


正确答案:

 

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

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

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

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

InterruptedException 异常。

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

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

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

而是让它们竞争。

第6题:

在引入线程概念的操作系统中,有关线程和进程的说法不正确的是(3)。

A.线程切换的开销小于进程切换的开销

B.进程是拥有资源的一个独立单位,而线程不拥有系统资源

C.有的系统线程的切换、同步和通信都不需要OS内核的干预

D.进程间可并发执行,但一个进程中的多个线程间不可以并发执行


正确答案:D
解析:D项的正确说法是:进程间和一个进程中的多个线程问都可以并发执行。

第7题:

类java.lang.ThreadDeath的功能是( )。

A.定义并且实现Java中的线程

B.定义Runnable接口

C.杀死线程

D.实现线程同步与交互


正确答案:C
解析:Java.lang.Thread的功能是定义并且实现Java中的线程Java.lang.Runnable的功能是定义Runnable接口;java.lang.Object的功能是定义现场同步与交互的方法;java.lang.ThreadDeath的功能是杀死线程。

第8题:

为了实现多任务处理、提高程序执行的并发性,操作系统中引入了进程、线程等机制。在Window98环境下,下列的叙述中哪个是错误的?

A.线程用于描述进程中的运行路径,每当进程被初始化时系统就要创建一个主线程

B.Window98环境下的所有进程均可能创建多个线程

C.同一个进程产生的多个线程共享一个内存地址空间

D.线程是处理器调度的对象,进程是资源分配的单位


正确答案:B

第9题:

下列说法中,错误的一项是______。

A.线程有其产生、存在和消亡的过程

B.一个进程可以创建多个线程

C.Java需要利用外部的线程支持库来实现多线程

D.在Java语言中支持多线程


正确答案:C

第10题:

(24)关于操作系统的描述中,正确的是

A)分时器可实现操作系统的多任务调度

B)一个线程可以包括一个或多个执行进程

C)线程通常包括使用的存储空间和寄存器资源

D)进程不需包括使用的存储空间和寄存器资源


正确答案:A

更多相关问题