更多“问答题什么是线程的同步?”相关问题
  • 第1题:

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


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

  • 第2题:

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


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

  • 第3题:

    问答题
    什么是线程的同步?

    正确答案: 多线程环境中,一个线程访问资源时,让其他线程不能访问此资源,表示同步。让线程同步,就是对资源加锁。具体是创建NSCondition对象,调用lock方法对资源加锁。
    解析: 暂无解析

  • 第4题:

    问答题
    简述什么是多线程?

    正确答案: 多线程就是一个应用程序同时有多个线程在执行,实现多任务处理,同一任务中的各个线程共享程序段、数据段等资源。
    解析: 暂无解析

  • 第5题:

    问答题
    Linux系统中线程的同步方式有互斥量、信号量和条件变量等。假设现在需要设计一个多线程的应用程序,试分析一下以上几种同步方式分别可在什么场合下使用。

    正确答案: Mutex互斥量,用于操作某个临界资源时对该资源上锁,以实现互斥地对独占资源的使用
    Semophore信号灯,信号灯内有一计数器,可以用于对多个同类资源的分配。当资源用完时,申请资源的线程会在信号量上睡眠,有线程释放资源时,再将该线程唤醒继续运行。
    Condition条件变量,条件变量用于等待信号。当一个线程需要等待某个信号时,就可到条件变量上等待,当信号具备时,系统会唤醒该线程继续运行。
    解析: 暂无解析

  • 第6题:

    问答题
    为什么要引入线程?线程和进程之间的区别和联系是什么?

    正确答案: 线程可以提高系统内程序并发执行的级别,可以进一步提高系统效率。线程和进程之间的联系是:线程是进程中的一个实体,是CPU调度和分派的基本.单位。区别是进程是一个资源的拥有者,而线程自己基本上不拥有系统资源,只拥有少量在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
    解析: 暂无解析

  • 第7题:

    问答题
    什么是线程?多线程技术具有哪些优越性?

    正确答案: 线程是进程中可独立执行的子任务,一个进程可以有一个或多个线程,每个线程都有一个惟一的标识符。线程与进程有许多相似之处,往往把线程又称为轻型进程,线程与进程的根本区别是把进程作为资源分配单位,而线程是调度和执行单位。
    多线程技术具有多个方面的优越性:
    ①创建速度快、系统开销小:创建线程不需要另行分配资源;
    ②通信简洁、信息传送速度快:线程间的通信在统一地址空间进程,不需要额外的通信机制;
    ③并行性高:线程能独立执行,能充分利用和发挥处理器与外围设备并行工作的能力。
    解析: 暂无解析

  • 第8题:

    问答题
    什么是守护线程?它和非守护线程有什么不同?

    正确答案: 所谓“守护线程(daemonthread)”是指,只要程序还在运行,它就应该在后台提供某种公共服务的线程,但是守护线程不属于程序的核心部分。因此,当所有非守护线程都运行结束的时候,程序也结束了。相反,只要还有非守护线程在运行,程序就不能结束。
    事实上,“守护线程”和“非守护线程”本质上并没有什么区别,只是JVM对其控制的方式有所不同而已。主要表现在:第一,守护线程一般是在后台提供某种服务,而非程序核心部分的线程,所以它的优先级最低。这意味着JVM会尽量先调度那些非守护线程运行。第二,程序中所有非守护线程都已结束运行时,程序就结束。
    解析: 暂无解析

  • 第9题:

    问答题
    什么是线程?与进程有何不同?

    正确答案: 线程是操作系统中重要概念之一,是程序运行的基本执行单元,与进程一样,也有创建、销毁和切换等状态,但负荷远小于进程,又称为轻量级进程。与进程不同的是:占用的资源少,不像进程那样可由几个线程组成,在Java语言中,用java.lang.Thread类创建和管理线程,而进程是由java.lang.Process类等类创建和管理。
    解析: 暂无解析

  • 第10题:

    问答题
    什么是进程和线程?简述进程与线程关系。

    正确答案: 进程是程序的一次执行,该程序可与其它程序并发执行。
    线程是进程内的一个可调度的执行单元。
    线程是进程的一个组成部分。一个进程可以有多个线程。一个进程至少有一个可执行的线程。
    解析: 暂无解析

  • 第11题:

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

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

  • 第12题:

    问答题
    什么是用户级线程和内核级线程?并对它们进行比较.

    正确答案: A.内核级线程是依赖于内核的,它存在于用户进程和系统进程中,它们的创建,撤消和切换都由内核实现;
    ---用户级线程仅存在于用户级中,它们的创建,撤消和切换不利用系统调用来实现,因而与内核无关,内核并不知道用户级线程的存在.
    B.内核级线程的调度和切换与进程十分相似,调度方式采用抢占式和非抢占式,调度算法采用时间轮转法和优先权算法等,当由线程调度选中一个线程后,再将处理器分配给它;而用户级线程通常发生在一个应用程序的诸线程之间,无需终端进入OS内核,切换规则也较简单,因而,用户级线程的切换速度较快.
    ---用户级线程调用系统调用和调度另一个进程执行时,内核把它们看作是整个进程的行为,内核级线程调用是以线程为单位,内核把系统调用看作是该线程的行为.
    ---对于用户级线程调用,进程的执行速度随着所含线程数目的增加而降低,对于内核级线程则相反.
    解析: 暂无解析

  • 第13题:

    Linux系统中线程的同步方式有互斥量、信号量和条件变量等。假设现在需要设计一个多线程的应用程序,试分析一下以上几种同步方式分别可在什么场合下使用。


    正确答案: Mutex互斥量,用于操作某个临界资源时对该资源上锁,以实现互斥地对独占资源的使用
    Semophore信号灯,信号灯内有一计数器,可以用于对多个同类资源的分配。当资源用完时,申请资源的线程会在信号量上睡眠,有线程释放资源时,再将该线程唤醒继续运行。
    Condition条件变量,条件变量用于等待信号。当一个线程需要等待某个信号时,就可到条件变量上等待,当信号具备时,系统会唤醒该线程继续运行。

  • 第14题:

    什么是线程?进程和线程的关系是什么?


    正确答案: 线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。一个进程可以有多个线程,而且至少有一个可执行线程。
    进程和线程的关系是:
    (1)线程是进程的一个组成部分。
    (2)进程的多个线程都在进程的地址空间活动。
    (3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。
    (4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。
    (5)线程在执行过程中,需要同步。

  • 第15题:

    问答题
    什么是线程调度?Java的线程调度采用什么策略?

    正确答案: 安排线程队列中CPU时间的线程被称为线程调度。Java的线程调度采用优先级基础上的“先到先服务”策略。
    解析: 暂无解析

  • 第16题:

    问答题
    多线程之间怎样进行同步?

    正确答案: 可以通过使用关键字synchronized,使用对象的wait()、notify()方法来实现线程间的同步。
    解析: 暂无解析

  • 第17题:

    问答题
    什么是线程?它与进程的区别是什么?

    正确答案: 线程:也叫轻量级的进程,它是一个基于进程的运行单位,它可以不占有资源,一个进程可以有一个线程或者多个线程(至少一个),这些线程共享此进程的代码、Data和部分管理信息,但是每个线程都有它自己的PC、Stack和其他。
    线程与进程的区别主要表现在以下几个方面:
    (1)地址空间和资源不同:进程间相互独立;同一进程的各个线程之间却共享它们。
    (2)通信不同:进程间可以使用IPC通信,线程之间可以直接读写进程数据段来进行通信;但是需要进程同步和互斥手段的辅助,以保证数据的一致性。
    (3)调度和切换不同:线程上下文切换比进程上下文的切换要快得多。
    解析: 暂无解析

  • 第18题:

    问答题
    程序、进程和线程之间的关系是什么?什么是多线程程序?

    正确答案: 程序是一段静态的代码,它是应用软件执行的蓝本。
    进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程。每一个进程都有自己独立的一块内存空间、一组系统资源。
    线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,形成多条执行线索,每个线程都有其产生、发展和消亡的过程。
    解析: 暂无解析

  • 第19题:

    问答题
    WindowsNT中,线程是怎样定义的?为什么要引进“线程”这一概念?

    正确答案: 在WindowsNT中,线程被定义为:进程内的一个可调度实体。WindowsNT引进线程的主要目的是要有效地实现并行性。多进程的方式虽然也可以实现并行性,但采用线程比采用进程在实现并行性上更方便、更有效。以UNIX为例,当一个进程创建一个子进程时,系统必须把父进程地址空间的所有内容拷贝到子进程的地址空间中去。对大地址空间来说,这样的操作是费时的,更何况两进程还要建立共享数据。采用多线程要好得多,因为这些线程共享进程的同一地址空间、对象句柄以及其他资源。
    解析: 暂无解析

  • 第20题:

    问答题
    什么是线程?它产生的背景是什么?线程有几种状态?说明状态变化调用的方法。

    正确答案: 线程是一个进程在执行过程中产生的多条执行线索。每个线程有它产生、存在和消亡的过程,是动态的。线程由线程内核对象和线程堆栈两部分组成,相对于组成进程的内核对象及虚拟地址空间,线程使用的系统资源比进程少得多。
    它产生的背景是:操作系统按照一定的策略(优先级、循环等)调度各个进程执行,以最大限度地利用计算机的各种资源。一个进程运行期间,拥有的主要资源包括地址空间(存放text,data,stack)、打开文件表、资源控制信息、核心栈。除了text可被其他进程共享外,上述资源都属进程私有。因此CPU从运行一个进程转换到运行另一个进程时,为进程保存、恢复的开销很大,并发效率低。如果把进程所占私有资源与进程中的运行代码相分离,在一个地址空间中便可运行多个代码段,由此产生线程概念。 线程的状态有以下四种:
    (1)创建状态(New-Thread);
    (2)运行状态(Runnable);
    (3)不可运行状态(Not-Runnable);
    (4)死亡状态(Dead)。
    对于上面4种状态,各有特定的使线程返回可运行状态的方法与之对应,如下所述:
    (1)如果线程处于睡眠状态中,sleep()方法中的参数为休息时间,当这个时间过去后,线程即为可运行的;
    (2)如果一个线程被挂起,需调用resume()方法才能返回;
    (3)如果线程在等待条件变量,那么要停止等待的话,需要该条件变量的线程对象调用notifyAll()方法;
    (4)如果在I/O流中发生线程阻塞,则特定的I/O完成可结束这种不可运行状态。 需要注意的是每种方法仅仅对相应的情况才有作用,例如当一个线程睡眠并且睡眠时间还没有结束时,调用resume()方法是无效的。
    解析: 暂无解析

  • 第21题:

    问答题
    什么是线程?进程和线程的关系是什么?

    正确答案: 线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。一个进程可以有多个线程,而且至少有一个可执行线程。
    进程和线程的关系是:
    (1)线程是进程的一个组成部分。
    (2)进程的多个线程都在进程的地址空间活动。
    (3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。
    (4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。
    (5)线程在执行过程中,需要同步。
    解析: 暂无解析

  • 第22题:

    问答题
    什么是内核级线程和用户级线程?对它们进行比较。

    正确答案: 内核级线程:线程管理的所有工作由操作系统内核来做。
    优点:
    (1)在多处理器上,内核能够同时调度同一进程中多个线程并行执行;
    (2)若其中的一个线程被阻塞了,内核能调度同一进程的其它线程占有处理器并运行,也可以运行其它进程中的线程。
    (3)由于内核线程仅有很小的数据结构和堆栈,KLT的切换比较快,内核自身也可以用多线程技术实现,从而,能提高系统的执行速度和效率。
    缺点:应用程序线程在用户态运行,而线程调度和管理在内核实现,在同一进程中,控制权从一个线程传送到另一个线程时需要用户态——内核态——用户态的模式切换,系统开销较大。
    用户级线程:线程管理的全部工作都由应用程序来做,在用户空间内实现,内核是不知道线程的存在的。
    优点:
    (1)线程切换不需要内核特权方式。
    (2)按应用特定需要允许进程选择调度算法。
    缺点:
    (1)在传统的基于进程操作系统中,大多数系统调用将阻塞进程。
    (2)在纯ULT中,多线程应用不能利用多重处理的优点。
    解析: 暂无解析

  • 第23题:

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

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

  • 第24题:

    问答题
    什么是线程?它与进程有什么关系?

    正确答案: 线程是进程中实施调度和分派的基本单位。
    线程和进程之间有如下关系:
    ①一个进程可以有多个线程,但至少有一个线程;而一个线程只能在一个进程的地址空间内活动。
    ②资源分配给进程,同一进程的所有线程共享该进程的所有资源。
    ③处理机分给线程,即真正在处理机上运行的是线程。
    ④线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
    解析: 暂无解析