多线程笔试面试概念问答
来源:互联网 发布:网络淘宝涮单是真的嘛 编辑:程序博客网 时间:2024/06/08 18:52
转自http://blog.csdn.net/wolenski/article/details/7969908
第一题:线程的基本概念、线程的基本状态及状态之间的关系?
线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源(如打开文件和信号)。
线程有四种状态:新生态、可运行状态、被阻塞状态、死亡状态。状态之间的转换如下图所示:
第二题:线程与进程的区别?
1、线程是进程的一部分,所以线程有的时候被称为是轻权进程或者轻量级进程。
2、一个没有多线程的进程是可以被看作单线程的,如果一个进程内拥有多个进程,进程的执行过程不是一条线(线程)的,而是多条线(线程)共同完成的。
3、系统在运行的时候会为每个进程分配不同的内存区域,但是不会为线程分配内存(线程所使用的资源是它所属的进程的资源),线程组只能共享资源。那就是说,除了CPU之外(线程在运行的时候要占用CPU资源),计算机内部的软硬件资源的分配与线程无关,线程只能共享它所属的进程的资源。
4、与进程的控制表PCB相似,线程也有自己的控制表TCB,但是TCB中所保存的线程状态比PCB表中少多了。
5、进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在。
第三题:多线程有几种实现方法,都是什么?
以下是 JAVA 的实现方式:
1、继承Thread类
2、实现Runnable接口再 new Thread(YourRunnableObject)
第四题:多线程同步和互斥有几种实现方法,都是什么?
线程间的同步方法大概可分为两类:用户模式和内核模式。顾名思义,内核模式就是指利用系统内核对象的单一性来进行同步,使用时需要切换内核状态与用户态,只在用户态完成操作。
用户模式的方法有:原子操作(例如一个单一的全局变量),临界区。内核模式的方法有:事件,信号量,互斥量。
第五题:多线程同步和互斥有何异同,在什么情况下分别使用他们?举例说明。
线程同步时指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时对应等待,直到消息到达时才被唤醒。
线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步(下文统称为同步)。
- 多线程笔试面试概念问答
- 多线程笔试面试概念问答
- 多线程笔试面试概念问答
- 多线程笔试面试概念问答
- 多线程笔试面试概念问答
- 多线程笔试面试概念问答
- 多线程笔试面试概念问答
- 多线程笔试面试概念问答
- 笔试面试常见问题问答
- 多线程面试问答
- JAVA多线程和并发基础面试问答
- JAVA多线程和并发基础面试问答
- JAVA多线程和并发基础面试问答
- JAVA多线程和并发基础面试问答
- JAVA多线程和并发基础面试问答
- JAVA 多线程和并发基础面试问答
- JAVA多线程和并发基础面试问答
- JAVA多线程和并发基础面试问答
- Cocos2d-x 反复动画
- CF/359/C. Prime Number
- 【PHP自学笔记1】如何搭建配置PHP环境、云平台发布、第一个HelloWorld程序
- UVa:11624 Fire!
- IP摄像机
- 多线程笔试面试概念问答
- 如何将string转换为Date类型
- android串口通信实例分析
- BogoMips 提高
- UML 之 概述
- 黑马程序员-----反射
- ubuntu远程连接windows
- fsdfdfdgdfgfgfg
- 鸿宝术的宗旨就是道义