更多“16 线程的同步方法?”相关问题
  • 第1题:

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


    正确答案:

     

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

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

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

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

    InterruptedException 异常。

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

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

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

    而是让它们竞争。

  • 第2题:

    下列( )类或接口定义了线程同步与交互的方法。

    A.Thread

    B.Runnable

    C.Object

    D.ThreadGroup


    正确答案:C

  • 第3题:

    线程的常见方法有哪些,你是如何处理多线程的,多线程同步问题你了解么?


    正确答案: 线程创建的几种方式,线程的加锁,休眠,唤醒,解锁,退出,多线程要考虑同步问题,解决同步问题的方式就是对某一资源加锁,当一个线程操作本资源时,其他线程不能操作。
    系统自带线程池(NSOpertionQueuE.的作用(凡是需要启动多个线程的地方都可以使用NSOpertionQueue,加入到NSOpertionQueue中的对象都需要继承NSOpertion。NSOpertionQueue会在系统内部启动一个独立线程去执行这个被加入对象的main方法。常用的地方是用nsoprationqueue下载图片,文件。如果是自己创建一个线程池,无非就是启动多个线程的时候,把这些线程对象放到一个大数组中,如果需要启动线程的时候,先从数组中找空闲线程来使用。自己管理线程池最大的难题是不好处理当启动多个线程后,用户在多个界面的跳转的时候,对线程方法的回调管理。而NSOpertionQueue可以很好的处理他。

  • 第4题:

    在线程同步中, 为了唤醒另一个等待的线程,使用下列方法()

    • A、sleep()
    • B、wait()
    • C、notify()
    • D、join()

    正确答案:C

  • 第5题:

    下面四个选项中,哪些是线程进入阻塞状态的原因?()

    • A、线程试图获取某个对象的同步锁,而该锁被其它线程持有
    • B、线程调用了另一个线程的join()方法
    • C、当线程调用了一个阻塞式的IO方法
    • D、线程调用了setDaemon(boolean b)方法

    正确答案:A,B,C

  • 第6题:

    在多线程环境中,对于同步方法()

    • A、测试代码不需同步
    • B、测试代码需同步
    • C、测试代码在测试该方法时不需同步
    • D、测试代码在测试该方法时需同步

    正确答案:C

  • 第7题:

    如果一个方法声明为同步方法,在有些情况下仍然需要其他线程访问该数据,可在该方法中使当前线程等待调用的方法是()

    • A、sleep()
    • B、stop()
    • C、wait()
    • D、notify()

    正确答案:C

  • 第8题:

    为应用程序开发人员上班Certkiller.com。 您需要修改应用程序的代码。 应用程序使用两个线程命名线程A和线程B.要完成执行之前线程开始执行线程B。 您将如何完成这项任务?()

    • A、定义线程A在较低的优先级运行。
    • B、定义线程B在更高的优先级运行。
    • C、执行WaitCallback委托来同步线程。
    • D、调用线程A睡眠的方法
    • E、调用线程A自旋锁的方法

    正确答案:C

  • 第9题:

    多选题
    下面四个选项中,哪些是线程进入阻塞状态的原因?()
    A

    线程试图获取某个对象的同步锁,而该锁被其它线程持有

    B

    线程调用了另一个线程的join()方法

    C

    当线程调用了一个阻塞式的IO方法

    D

    线程调用了setDaemon(boolean b)方法


    正确答案: A,B
    解析: 暂无解析

  • 第10题:

    问答题
    解释至少3种线程同步方法。

    正确答案: (1)使用Condition对象可以在某些事件触发后才处理数据,可以用于不同线程之间的通信或通知,以实现更高级别的同步。Condition对象除了具有acquire()和release()方法之外,还有wait()、notify()、notify_all()等方法。下面通过经典生产者/消费者问题来演示Condition对象的用法。
    (2)Queue模块(在Python3中为queue模块)实现了多生产者/多消费者队列,尤其适合需要在多个线程之间进行信息交换的场合,该模块的Queue对象实现了多线程编程所需要的所有锁语义。
    (3)Event对象是一种简单的线程通信技术,一个线程设置Event对象,另一个线程等待Event对象。Event对象的set()方法可以设置Event对象内部的信号标志为真;clear()方法可以清除Event对象内部的信号标志,将其设置为假;isSet()方法用来判断其内部信号标志的状态;wait()方法只有在其内部信号状态为真时将很快地执行并返回,若Event对象的内部信号标志为假,wait()方法将一直等待至超时或内部信号状态为真。
    解析: 暂无解析

  • 第11题:

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

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

  • 第12题:

    单选题
    在多线程环境中,对于同步方法()
    A

    测试代码不需同步

    B

    测试代码需同步

    C

    测试代码在测试该方法时不需同步

    D

    测试代码在测试该方法时需同步


    正确答案: D
    解析: 暂无解析

  • 第13题:

    请说出你所知道的线程同步的方法。


    正确答案:

     

    wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
    sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
    notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
    Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

  • 第14题:

    解释至少3种线程同步方法。


    正确答案: (1)使用Condition对象可以在某些事件触发后才处理数据,可以用于不同线程之间的通信或通知,以实现更高级别的同步。Condition对象除了具有acquire()和release()方法之外,还有wait()、notify()、notify_all()等方法。下面通过经典生产者/消费者问题来演示Condition对象的用法。
    (2)Queue模块(在Python3中为queue模块)实现了多生产者/多消费者队列,尤其适合需要在多个线程之间进行信息交换的场合,该模块的Queue对象实现了多线程编程所需要的所有锁语义。
    (3)Event对象是一种简单的线程通信技术,一个线程设置Event对象,另一个线程等待Event对象。Event对象的set()方法可以设置Event对象内部的信号标志为真;clear()方法可以清除Event对象内部的信号标志,将其设置为假;isSet()方法用来判断其内部信号标志的状态;wait()方法只有在其内部信号状态为真时将很快地执行并返回,若Event对象的内部信号标志为假,wait()方法将一直等待至超时或内部信号状态为真。

  • 第15题:

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


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

  • 第16题:

    对于wait()方法,下面说法正确的是?()

    • A、wait()方法的调用者是同步锁对象
    • B、wait()方法使线程进入等待状态
    • C、调用同一锁对象的notify()或notifyAll()方法可以唤醒调用wait()方法等待的线程
    • D、调用wait()方法的线程会释放同步锁对象

    正确答案:A,B,C,D

  • 第17题:

    所谓线程同步就是若干个线程都需要使用同一个synchronized修饰的方法。


    正确答案:正确

  • 第18题:

    关于同步关键字的说法错误的是()

    • A、如果一个线程在执行同步方法时没有执行完毕代码就耗尽了时间片,其他线程在获得了运行权之后就可以运行了。
    • B、为防止时间片耗尽导致的代码没有完全执行完毕的情况发生,可以考虑利用同步关键字。
    • C、利用同步关键保证只有当一个线程彻底执行完方法后,其他线程才能运行该方法。
    • D、等待失去时间片的线程执行完毕代码后,才能访问该方法。

    正确答案:A

  • 第19题:

    线程同步执行过程中,wait方法与()方法是匹配使用,否则易造成死锁。


    正确答案:notify

  • 第20题:

    填空题
    线程同步执行过程中,wait方法与()方法是匹配使用,否则易造成死锁。

    正确答案: notify
    解析: 暂无解析

  • 第21题:

    判断题
    所谓线程同步就是若干个线程都需要使用同一个synchronized修饰的方法。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第22题:

    单选题
    在线程同步中, 为了唤醒另一个等待的线程,使用下列方法()
    A

    sleep()

    B

    wait()

    C

    notify()

    D

    join()


    正确答案: C
    解析: 暂无解析

  • 第23题:

    问答题
    线程的常见方法有哪些,你是如何处理多线程的,多线程同步问题你了解么?

    正确答案: 线程创建的几种方式,线程的加锁,休眠,唤醒,解锁,退出,多线程要考虑同步问题,解决同步问题的方式就是对某一资源加锁,当一个线程操作本资源时,其他线程不能操作。
    系统自带线程池(NSOpertionQueuE.的作用(凡是需要启动多个线程的地方都可以使用NSOpertionQueue,加入到NSOpertionQueue中的对象都需要继承NSOpertion。NSOpertionQueue会在系统内部启动一个独立线程去执行这个被加入对象的main方法。常用的地方是用nsoprationqueue下载图片,文件。如果是自己创建一个线程池,无非就是启动多个线程的时候,把这些线程对象放到一个大数组中,如果需要启动线程的时候,先从数组中找空闲线程来使用。自己管理线程池最大的难题是不好处理当启动多个线程后,用户在多个界面的跳转的时候,对线程方法的回调管理。而NSOpertionQueue可以很好的处理他。
    解析: 暂无解析