多线程面试59题(含答案

多线程面试59题(含答案
多线程面试59题(含答案

1.多线程有什么用?

1)发挥多核CPU的优势

随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的"多线程"那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多个线程"同时"运行罢了。多核CPU上的多线程才是真正的多线程,它能让你的多段逻辑同时工作,多线程,可以真正发挥出多核CPU的优势来,达到充分利用CPU的目的。

2)防止阻塞

从程序运行效率的角度来看,单核CPU不但不会发挥出多线程的优势,反而会因为在单核CPU上运行多线程导致线程上下文的切换,而降低程序整体的效率。但是单核CPU我们还是要应用多线程,就是为了防止阻塞。试想,如果单核CPU使用单线程,那么只要这个线程阻塞了,比方说远程读取某个数据吧,对端迟迟未返回又没有设置超时时间,那么你的整个程序在数据返回回来之前就停止运行了。多线程可以防止这个问题,多条线程同时运行,哪怕一条线程的代码执行读取数据阻塞,也不会影响其它任务的执行。

3)便于建模

这是另外一个没有这么明显的优点了。假设有一个大的任务A,单线程编程,那么就要考虑很多,建立整个程序模型比较麻烦。但是如果把这个大的任务A分解成几个小任务,任务B、任务C、任务D,分别建立程序模型,并通过多线程分别运行这几个任务,那就简单很多了。

2.线程和进程的区别是什么?

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

3.Java实现线程有哪几种方式?

1)继承Thread类实现多线程

2)实现Runnable接口方式实现多线程

3)使用ExecutorService、Callable、Future实现有返回结果的多线程

4.启动线程方法start()和run()有什么区别?

只有调用了start()方法,才会表现出多线程的特性,不同线程的run()方法里面的代码交替执行。如果只是调用run()方法,那么代码还是同步执行的,必须等待一个线程的run()方法里面的代码全部执行完毕之后,另外一个线程才可以执行其run()方法里面的代码。

5.怎么终止一个线程?如何优雅地终止线程?

stop终止,不推荐。

6.一个线程的生命周期有哪几种状态?它们之间如何流转的?NEW:毫无疑问表示的是刚创建的线程,还没有开始启动。

RUNNABLE:表示线程已经触发start()方式调用,线程正式启动,线程处于运行中状态。

BLOCKED:表示线程阻塞,等待获取锁,如碰到synchronized、lock等关键字等

占用临界区的情况,一旦获取到锁就进行RUNNABLE状态继续运行。WAITING:表示线程处于无限制等待状态,等待一个特殊的事件来重新唤醒,如通过wait()方法进行等待的线程等待一个notify()或者notifyAll()方法,通过join()方法进行等待的线程等待目标线程运行结束而唤醒,一旦通过相关事件唤醒线程,线程就进入了RUNNABLE状态继续运行。

TIMED_WAITING:表示线程进入了一个有时限的等待,如sleep(3000),等待3秒后线程重新进行RUNNABLE状态继续运行。

TERMINATED:表示线程执行完毕后,进行终止状态。需要注意的是,一旦线程通过start方法启动后就再也不能回到初始NEW状态,线程终止后也不能再回到RUNNABLE状态

7.线程中的wait()和sleep()方法有什么区别?

这个问题常问,sleep方法和wait方法都可以用来放弃CPU一定的时间,不同点在于如果线程持有某个对象的监视器,sleep方法不会放弃这个对象的监视器,wait 方法会放弃这个对象的监视器

8.多线程同步有哪几种方法?

Synchronized关键字,Lock锁实现,分布式锁等。

9.什么是死锁?如何避免死锁?

死锁就是两个线程相互等待对方释放对象锁。

10.多线程之间如何进行通信?

wait/notify

11、线程怎样拿到返回结果?

实现Callable接口。

12、violatile关键字的作用?

一个非常重要的问题,是每个学习、应用多线程的Java程序员都必须掌握的。理解volatile关键字的作用的前提是要理解Java内存模型,这里就不讲Java内存模型了,可以参见第31点,volatile关键字的作用主要有两个:

1)多线程主要围绕可见性和原子性两个特性而展开,使用volatile关键字修饰的变量,保证了其在多线程之间的可见性,即每次读取到volatile变量,一定是最新的数据

2)代码底层执行不像我们看到的高级语言----Java程序这么简单,它的执行是Java 代码-->字节码-->根据字节码执行对应的C/C++代码-->C/C++代码被编译成汇编语言-->和硬件电路交互,现实中,为了获取更好的性能JVM可能会对指令进行重排序,多线程下可能会出现一些意想不到的问题。使用volatile则会对禁止语义重排序,当然这也一定程度上降低了代码执行效率从实践角度而言,volatile的一个重要作用就是和CAS结合,保证了原子性,详细的可以参见java.util.concurrent.atomic包下的类,比如AtomicInteger。

13、新建T1、T2、T3三个线程,如何保证它们按顺序执行?

用join方法。

14、怎么控制同一时间只有3个线程运行?

用Semaphore。

15、为什么要使用线程池?

我们知道不用线程池的话,每个线程都要通过new Thread(xxRunnable).start()的方式来创建并运行一个线程,线程少的话这不会是问题,而真实环境可能会开启多个

线程让系统和程序达到最佳效率,当线程数达到一定数量就会耗尽系统的CPU和内存资源,也会造成GC频繁收集和停顿,因为每次创建和销毁一个线程都是要消耗系统资源的,如果为每个任务都创建线程这无疑是一个很大的性能瓶颈。所以,线程池中的线程复用极大节省了系统资源,当线程一段时间不再有任务处理时它也会自动销毁,而不会长驻内存。

16、常用的几种线程池并讲讲其中的工作原理。

什么是线程池?

很简单,简单看名字就知道是装有线程的池子,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程的复用。

线程池的好处

我们知道不用线程池的话,每个线程都要通过new Thread(xxRunnable).start()的方式来创建并运行一个线程,线程少的话这不会是问题,而真实环境可能会开启多个线程让系统和程序达到最佳效率,当线程数达到一定数量就会耗尽系统的CPU和内存资源,也会造成GC频繁收集和停顿,因为每次创建和销毁一个线程都是要消耗系统资源的,如果为每个任务都创建线程这无疑是一个很大的性能瓶颈。所以,线程池中的线程复用极大节省了系统资源,当线程一段时间不再有任务处理时它也会自动销毁,而不会长驻内存。

线程池核心类

在java.util.concurrent包中我们能找到线程池的定义,其中ThreadPoolExecutor是我们线程池核心类,首先看看线程池类的主要参数有哪些。

如何提交线程

如可以先随便定义一个固定大小的线程池ExecutorService es= Executors.newFixedThreadPool(3);提交一个线程es.submit(xxRunnble);

es.execute(xxRunnble);

submit和execute分别有什么区别呢?

execute没有返回值,如果不需要知道线程的结果就使用execute方法,性能会好很多。

submit返回一个Future对象,如果想知道线程结果就使用submit提交,而且它能在主线程中通过Future的get方法捕获线程中的异常。

如何关闭线程池es.shutdown();

不再接受新的任务,之前提交的任务等执行结束再关闭线程池。

es.shutdownNow();

不再接受新的任务,试图停止池中的任务再关闭线程池,返回所有未处理的线程list列表。

17、线程池启动线程submit()和execute()方法有什么不同?execute没有返回值,如果不需要知道线程的结果就使用execute方法,性能会好很多。

submit返回一个Future对象,如果想知道线程结果就使用submit提交,而且它能在主线程中通过Future的get方法捕获线程中的异常。

18、CyclicBarrier和CountDownLatch的区别?

两个看上去有点像的类,都在java.util.concurrent下,都可以用来表示代码运行到某个点上,二者的区别在于:

1.CyclicBarrier的某个线程运行到某个点上之后,该线程即停止运行,直到所有的线程都到达了这个点,所有线程才重新运行;CountDownLatch则不是,某线程运行到某个点上之后,只是给某个数值-1而已,该线程继续运行

2.CyclicBarrier只能唤起一个任务,CountDownLatch可以唤起多个任务

3.CyclicBarrier可重用,CountDownLatch不可重用,计数值为0该CountDownLatch就不可再用了

19、什么是活锁、饥饿、无锁、死锁?

死锁、活锁、饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现了这三种情况,即线程不再活跃,不能再正常地执行下去了。

死锁

死锁是多线程中最差的一种情况,多个线程相互占用对方的资源的锁,而又相互等对方释放锁,此时若无外力干预,这些线程则一直处理阻塞的假死状态,形成死锁。举个例子,A同学抢了B同学的钢笔,B同学抢了A同学的书,两个人都相互占用对方的东西,都在让对方先还给自己自己再还,这样一直争执下去等待对方还而又得不到解决,老师知道此事后就让他们相互还给对方,这样在外力的干预下他们才解决,当然这只是个例子没有老师他们也能很好解决,计算机不像人如果发现这种情况没有外力干预还是会一直阻塞下去的。

活锁

活锁这个概念大家应该很少有人听说或理解它的概念,而在多线程中这确实存在。活锁恰恰与死锁相反,死锁是大家都拿不到资源都占用着对方的资源,而活锁是拿到资源却又相互释放不执行。当多线程中出现了相互谦让,都主动将资源释放给别的线程使用,这样这个资源在多个线程之间跳动而又得不到执行,这就是活锁。

饥饿

我们知道多线程执行中有线程优先级这个东西,优先级高的线程能够插队并优先执行,这样如果优先级高的线程一直抢占优先级低线程的资源,导致低优先级线程无法得到执行,这就是饥饿。当然还有一种饥饿的情况,一个线程一直占着一个资源不放而导致其他线程得不到执行,与死锁不同的是饥饿在以后一段时间内还是能够得到执行的,如那个占用资源的线程结束了并释放了资源。

无锁

无锁,即没有对资源进行锁定,即所有的线程都能访问并修改同一个资源,但同时只有一个线程能修改成功。无锁典型的特点就是一个修改操作在一个循环内进行,线程会不断的尝试修改共享资源,如果没有冲突就修改成功并退出否则就会继续下一次循环尝试。所以,如果有多个线程修改同一个值必定会有一个线程能修改成功,而其他修改失败的线程会不断重试直到修改成功。之前的文章我介绍过JDK的CAS原理及应用即是无锁的实现。

可以看出,无锁是一种非常良好的设计,它不会出现线程出现的跳跃性问题,锁使用不当肯定会出现系统性能问题,虽然无锁无法全面代替有锁,但无锁在某些场合下是非常高效的。

20、什么是原子性、可见性、有序性?

原子性、可见性、有序性是多线程编程中最重要的几个知识点,由于多线程情况复杂,如何让每个线程能看到正确的结果,这是非常重要的。

原子性

原子性是指一个线程的操作是不能被其他线程打断,同一时间只有一个线程对一个变量进行操作。在多线程情况下,每个线程的执行结果不受其他线程的干扰,比如说多个线程同时对同一个共享成员变量n++100次,如果n初始值为0,n最后的值应该是100,所以说它们是互不干扰的,这就是传说的中的原子性。但n++并不是原子性的操作,要使用AtomicInteger保证原子性。

可见性

可见性是指某个线程修改了某一个共享变量的值,而其他线程是否可以看见该共享变量修改后的值。在单线程中肯定不会有这种问题,单线程读到的肯定都是最新的

值,而在多线程编程中就不一定了。每个线程都有自己的工作内存,线程先把共享变量的值从主内存读到工作内存,形成一个副本,当计算完后再把副本的值刷回主内存,从读取到最后刷回主内存这是一个过程,当还没刷回主内存的时候这时候对其他线程是不可见的,所以其他线程从主内存读到的值是修改之前的旧值。像CPU的缓存优化、硬件优化、指令重排及对JVM编译器的优化,都会出现可见性的问题。

有序性

我们都知道程序是按代码顺序执行的,对于单线程来说确实是如此,但在多线程情况下就不是如此了。为了优化程序执行和提高CPU的处理性能,JVM和操作系统都会对指令进行重排,也就说前面的代码并不一定都会在后面的代码前面执行,即后面的代码可能会插到前面的代码之前执行,只要不影响当前线程的执行结果。所以,指令重排只会保证当前线程执行结果一致,但指令重排后势必会影响多线程的执行结果。虽然重排序优化了性能,但也是会遵守一些规则的,并不能随便乱排序,只是重排序会影响多线程执行的结果。

21、什么是守护线程?有什么用?

什么是守护线程?与守护线程相对应的就是用户线程,守护线程就是守护用户线程,当用户线程全部执行完结束之后,守护线程才会跟着结束。也就是守护线程必须伴随着用户线程,如果一个应用内只存在一个守护线程,没有用户线程,守护线程自然会退出。

22、一个线程运行时发生异常会怎样?

如果异常没有被捕获该线程将会停止执行。Thread.UncaughtExceptionHandler是用于处理未捕获异常造成线程突然中断情况的一个内嵌接口。当一个未捕获异常将造成线程中断的时候JVM会使用Thread.getUncaughtExceptionHandler()来查询线程的UncaughtExceptionHandler并将线程和异常作为参数传递给handler的uncaughtException()方法进行处理。

23、线程yield()方法有什么用?

Yield方法可以暂停当前正在执行的线程对象,让其它有相同优先级的线程执行。它是一个静态方法而且只保证当前线程放弃CPU占用而不能保证使其它线程一定能占用CPU,执行yield()的线程有可能在进入到暂停状态后马上又被执行。

24、什么是重入锁?

所谓重入锁,指的是以线程为单位,当一个线程获取对象锁之后,这个线程可以再次获取本对象上的锁,而其他的线程是不可以的。

25、Synchronized有哪几种用法?

锁类、锁方法、锁代码块。

26、Fork/Join框架是干什么的?

大任务自动分散小任务,并发执行,合并小任务结果。

27、线程数过多会造成什么异常?

线程过多会造成栈溢出,也有可能会造成堆异常。

28、说说线程安全的和不安全的集合。

Java中平时用的最多的Map集合就是HashMap了,它是线程不安全的。

看下面两个场景:

1、当用在方法内的局部变量时,局部变量属于当前线程级别的变量,其他线程访问不了,所以这时也不存在线程安全不安全的问题了。

2、当用在单例对象成员变量的时候呢?这时候多个线程过来访问的就是同一个HashMap了,对同个HashMap操作这时候就存在线程安全的问题了。

29、什么是CAS算法?在多线程中有哪些应用。

CAS,全称为Compare and Swap,即比较-替换。假设有三个操作数:内存值V、旧的预期值A、要修改的值B,当且仅当预期值A和内存值V相同时,才会将内存值修改为B并返回true,否则什么都不做并返回false。当然CAS一定要volatile 变量配合,这样才能保证每次拿到的变量是主内存中最新的那个值,否则旧的预期值A对某条线程来说,永远是一个不会变的值A,只要某次CAS操作失败,永远都不可能成功。

java.util.concurrent.atomic包下面的Atom****类都有CAS算法的应用。

30、怎么检测一个线程是否拥有锁?

https://www.360docs.net/doc/7644308.html,ng.Thread#holdsLock方法

31、Jdk中排查多线程问题用什么命令?

jstack

32、线程同步需要注意什么?

1、尽量缩小同步的范围,增加系统吞吐量。

2、分布式同步锁无意义,要使用分布式锁。

3、防止死锁,注意加锁顺序。

33、线程wait()方法使用有什么前提?

要在同步块中使用。

34、Fork/Join框架使用有哪些要注意的地方?

如果任务拆解的很深,系统内的线程数量堆积,导致系统性能性能严重下降;

如果函数的调用栈很深,会导致栈内存溢出;

35、线程之间如何传递数据?

通过在线程之间共享对象就可以了,然后通过wait/notify/notifyAll、await/signal/signalAll进行唤起和等待,比方说阻塞队列BlockingQueue就是为线程之间共享数据而设计的

36、保证"可见性"有哪几种方式?

synchronized和viotatile

37、说几个常用的Lock接口实现锁。

ReentrantLock、ReadWriteLock

38、ThreadLocal是什么?有什么应用场景?

ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。用来解决数据库连接、Session管理等。

39、ReadWriteLock有什么用?

ReadWriteLock是一个读写锁接口,ReentrantReadWriteLock是ReadWriteLock接口的一个具体实现,实现了读写的分离,读锁是共享的,写锁是独占的,读和读之间不会互斥,读和写、写和读、写和写之间才会互斥,提升了读写的性能。40、FutureTask是什么?

FutureTask表示一个异步运算的任务,FutureTask里面可以传入一个Callable的具

体实现类,可以对这个异步运算的任务的结果进行等待获取、判断是否已经完成、取消任务等操作。

41、怎么唤醒一个阻塞的线程?

如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞,可以中断线程,并且通过抛出InterruptedException来唤醒它;如果线程遇到了IO阻塞,无能为力,因为IO是操作系统实现的,Java代码并没有办法直接接触到操作系统。

42、不可变对象对多线程有什么帮助?

不可变对象保证了对象的内存可见性,对不可变对象的读取不需要进行额外的同步手段,提升了代码执行效率。

43、多线程上下文切换是什么意思?

多线程的上下文切换是指CPU控制权由一个已经正在运行的线程切换到另外一个就绪并等待获取CPU执行权的线程的过程。

44、Java中用到了什么线程调度算法?

抢占式。一个线程用完CPU之后,操作系统会根据线程优先级、线程饥饿情况等数据算出一个总的优先级并分配下一个时间片给某个线程执行。

45、Thread.sleep(0)的作用是什么?

由于Java采用抢占式的线程调度算法,因此可能会出现某条线程常常获取到CPU 控制权的情况,为了让某些优先级比较低的线程也能获取到CPU控制权,可以使用Thread.sleep(0)手动触发一次操作系统分配时间片的操作,这也是平衡CPU控制权的一种操作。

46、Java内存模型是什么,哪些区域是线程共享的,哪些是不共享的?

我们知道的JVM内存区域有:堆和栈,这是一种泛的分法,也是按运行时区域的一种分法,堆是所有线程共享的一块区域,而栈是线程隔离的,每个线程互不共享。线程不共享区域每个线程的数据区域包括程序计数器、虚拟机栈和本地方法栈,它们都是在新线程创建时才创建的。

程序计数器(Program Counter Rerister)

程序计数器区域一块内存较小的区域,它用于存储线程的每个执行指令,每个线程都有自己的程序计数器,此区域不会有内存溢出的情况。

虚拟机栈(VM Stack)

虚拟机栈描述的是Java方法执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。

本地方法栈(Native Method Stack)

本地方法栈用于支持本地方法(native标识的方法,即非Java语言实现的方法)。虚拟机栈和本地方法栈,当线程请求分配的栈容量超过JVM允许的最大容量时抛出StackOverflowError异常。

线程共享区域

线程共享区域包含:堆和方法区。

堆(Heap)

堆是最常处理的区域,它存储在JVM启动时创建的数组和对象,JVM垃圾收集也主要是在堆上面工作。

如果实际所需的堆超过了自动内存管理系统能提供的最大容量时抛出

OutOfMemoryError异常。

方法区(Method Area)

方法区是可供各条线程共享的运行时内存区域。存储了每一个类的结构信息,例如运行时常量池(Runtime Constant Pool)、字段和方法数据、构造函数和普通方法的字节码内容、还包括一些在类、实例、接口初始化时用到的特殊方法。当创建类和接口时,如果构造运行时常量池所需的内存空间超过了方法区所能提供的最大内存空间后就会抛出OutOfMemoryError

运行时常量池(Runtime Constant Pool)

运行时常量池是方法区的一部分,每一个运行时常量池都分配在JVM的方法区中,在类和接口被加载到JVM后,对应的运行时常量池就被创建。运行时常量池是每一个类或接口的常量池(Constant_Pool)的运行时表现形式,它包括了若干种常量:编译器可知的数值字面量到必须运行期解析后才能获得的方法或字段的引用。如果方法区的内存空间不能满足内存分配请求,那Java虚拟机将抛出一个OutOfMemoryError异常。栈包含Frames,当调用方法时,Frame被推送到堆栈。一个Frame包含局部变量数组、操作数栈、常量池引用。

47、什么是乐观锁和悲观锁?

乐观锁:就像它的名字一样,对于并发间操作产生的线程安全问题持乐观状态,乐观锁认为竞争不总是会发生,因此它不需要持有锁,将比较-替换这两个动作作为一个原子操作尝试去修改内存中的变量,如果失败则表示发生冲突,那么就应该有相应的重试逻辑。

悲观锁:还是像它的名字一样,对于并发间操作产生的线程安全问题持悲观状态,悲观锁认为竞争总是会发生,因此每次对某资源进行操作时,都会持有一个独占的锁,就像synchronized,不管三七二十一,直接上了锁就操作资源了。

48、Hashtable的size()方法为什么要做同步?

同一时间只能有一条线程执行固定类的同步方法,但是对于类的非同步方法,可以多条线程同时访问。所以,这样就有问题了,可能线程A在执行Hashtable的put 方法添加数据,线程B则可以正常调用size()方法读取Hashtable中当前元素的个数,那读取到的值可能不是最新的,可能线程A添加了完了数据,但是没有对size++,线程B就已经读取size了,那么对于线程B来说读取到的size一定是不准确的。而给size()方法加了同步之后,意味着线程B调用size()方法只有在线程A 调用put方法完毕之后才可以调用,这样就保证了线程安全性CPU执行代码,执行的不是Java代码,这点很关键,一定得记住。Java代码最终是被翻译成机器码执行的,机器码才是真正可以和硬件电路交互的代码。即使你看到Java代码只有一行,甚至你看到Java代码编译之后生成的字节码也只有一行,也不意味着对于底层来说这句语句的操作只有一个。一句"return count"假设被翻译成了三句汇编语句执行,一句汇编语句和其机器码做对应,完全可能执行完第一句,线程就切换了。

49、同步方法和同步块,哪种更好?

同步块,这意味着同步块之外的代码是异步执行的,这比同步整个方法更提升代码的效率。

请知道一条原则:同步的范围越小越好。

50、什么是自旋锁?

自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时才能进入临界区。

51、Runnable和Thread用哪个好?

Java不支持类的多重继承,但允许你实现多个接口。所以如果你要继承其他类,也

为了减少类之间的耦合性,Runnable会更好。

52、Java中notify和notifyAll有什么区别?

notify()方法不能唤醒某个具体的线程,所以只有一个线程在等待的时候它才有用武之地。

而notifyAll()唤醒所有线程并允许他们争夺锁确保了至少有一个线程能继续运行。53、为什么wait/notify/notifyAll这些方法不在thread类里面?

这是个设计相关的问题,它考察的是面试者对现有系统和一些普遍存在但看起来不合理的事物的看法。回答这些问题的时候,你要说明为什么把这些方法放在Object 类里是有意义的,还有不把它放在Thread类里的原因。一个很明显的原因是JAVA提供的锁是对象级的而不是线程级的,每个对象都有锁,通过线程获得。如果线程需要等待某些锁那么调用对象中的wait()方法就有意义了。如果wait()方法定义在Thread类中,线程正在等待的是哪个锁就不明显了。简单的说,由于wait,notify和notifyAll都是锁级别的操作,所以把他们定义在Object类中因为锁属于对象。

54、为什么wait和notify方法要在同步块中调用?

主要是因为Java API强制要求这样做,如果你不这么做,你的代码会抛出IllegalMonitorStateException异常。还有一个原因是为了避免wait和notify 之间产生竞态条件。

55、为什么你应该在循环中检查等待条件?

处于等待状态的线程可能会收到错误警报和伪唤醒,如果不在循环中检查等待条件,程序就会在没有满足结束条件的情况下退出。因此,当一个等待线程醒来时,不能认为它原来的等待状态仍然是有效的,在notify()方法调用之后和等待线程醒来之前这段时间它可能会改变。这就是在循环中使用wait()方法效果更好的原因,你可以在Eclipse中创建模板调用wait和notify试一试。

56、Java中堆和栈有什么不同?

每个线程都有自己的栈内存,用于存储本地变量,方法参数和栈调用,一个线程中存储的变量对其它线程是不可见的。而堆是所有线程共享的一片公用内存区域。对象都在堆里创建,为了提升效率线程会从堆中弄一个缓存到自己的栈,如果多个线程使用该变量就可能引发问题,这时volatile变量就可以发挥作用了,它要求线程从主存中读取变量的值。

57、你如何在Java中获取线程堆栈?

对于不同的操作系统,有多种方法来获得Java进程的线程堆栈。当你获取线程堆栈时,JVM会把所有线程的状态存到日志文件或者输出到控制台。在Windows你可以使用Ctrl+Break组合键来获取线程堆栈,Linux下用kill-3命令。你也可以用jstack这个工具来获取,它对线程id进行操作,你可以用jps这个工具找到id。58、如何创建线程安全的单例模式?

单例模式即一个JVM内存中只存在一个类的对象实例分类

1、懒汉式

类加载的时候就创建实例

2、饿汉式

使用的时候才创建实例

59、什么是阻塞式方法?

阻塞式方法是指程序会一直等待该方法完成期间不做其他事情,ServerSocket的

accept()方法就是一直等待客户端连接。这里的阻塞是指调用结果返回之前,当前线程会被挂起,直到得到结果之后才会返回。此外,还有异步和非阻塞式方法在任务完成前就返回。

60、提交任务时线程池队列已满会时发会生什么?

当线程数小于最大线程池数maximumPoolSize时就会创建新线程来处理,而线程数大于等于最大线程池数maximumPoolSize时就会执行拒绝策略。

(完整版)电力安规试题及答案

电力安规试题及答案 一、单项选择题: 1、进入下列现场,哪些必须戴安全帽:(A ) A、高压配电室 B、控制室 C、检修班组办公室 D、非生产区域 2、防止“五种”电气误操作事故,要求凡有可能引起电气误操作的高压电气设备,均应装设防误装置。“五防”功能中除以下哪项可采用提示性装置外,其它“四防”均应用强制性的装置:( D ) A、防止带负荷拉(合)隔离开关 B、防止带电挂(合)接地线(接地开关) C、防止带地线(接地开关)合断路器 D、防止误分(误合)断路器 E、防止误入带电间隔 3、雷雨天气,需要巡视室外高压设备时,应:(A ) A、穿绝缘靴,并不得靠近避雷器和避雷针; B、无任何安全措施,可单独巡视; C、穿绝缘靴,可靠近任何设备; D、穿绝缘靴,但可靠近避雷器和避雷针。 4、生产性企业对车间负责人、生产科室负责人及专业技术人员,应几年进行一次安全生产规章制度的考试:( A ) A、一年 B、两年 C、2—3年 D、1—2年

5、经企业领导批准允许巡视高压设备的值班员和非值班员,巡视高压设备时:(A ) A、不得进行其它工作不得移开或越过遮栏 B、可以进行其它工作 C、可以越过遮栏进行巡视 D、无具体规定 6、“两票三制”中的“三制”是指:(A ) A、交接班制、巡回检查制、设备定期试验轮换制; B、交班制、接班制、巡回检查制; C、班前会制、班后会制、巡回检查制; D、设备运行制、设备检修制、设备定期试验轮换制 7、新入厂的生产人员,必须经什么考试合格,方可进入生产现场工作:(D ) A、经班组考试合格; B、经车间考试合格; C、经厂(局、公司)考试合格; D、经厂(局、公司)、车间和班组三级安全教育,经《电业安全工作规程》考试合格。 8、对于临时工,下列正确的是:(A ) A、临时工的安全管理、事故统计、考核以及安全防护用品的发放与固定职工同等对待; B、临时工的安全管理与固定职工相同,但不考核、不统计;

安规考试题库含答案

变电运维安规考试题库 班级姓名得分_______ 一、选择题 1. 外单位承担或外来人员参与公司系统电气工作的工作人员,应熟悉国家电网公司电力安全工作规程(变电部分),并经考试合格,经( )认可,方可参加工作。 A. 聘用单位 B.设备运行管理单位 C. 发包单位 D. 用工单位 2. 各类作业人员有权( )违章指挥和强令冒险作业。 A. 制止 B. 拒绝 C. 举报 3. 电力安全工作规程要求,作业人员对电力安全工作规程应( )考试一次。 A. 两年 B. 每年 C. 三年 4. 作业现场的生产条件和安全设施等应符合有关标准、规范的要求,工作人员的( )应合格、齐备。 A. 穿戴 B. 劳动防护用品 C. 器材 D. 工具 5. 各类作业人员应被告知其作业现场和工作岗位存在的危险因素、防范措施及( )。 A. 事故紧急处理措施 B. 紧急救护措施 C. 应急预案 D. 逃生方法 6. 为加强电力生产现场管理,规范各类工作人员的行为,保证人身、( )和设备安全,依据国家有关法律、法规,结合电力生产的实际,制定电力安全工作规程。 A. 施工 B. 电网 C. 网络 D. 电力 7. 作业人员的基本条件之一:经( )鉴定,作业人员无妨碍工作的病症。 A. 领导 B. 医疗机构 C. 医师 D. 专业机构8. 作业人员的基本条件规定,作业人员的体格检查每( )至少一次。 A. 三年 B. 四年 C. 两年 D. 一年 9. 高压电气设备:电压等级在( )伏及以上者。 A. 1000 B. 250 C. 500 D. 380 10. 高压设备上全部停电的工作,系指室内高压设备全部停电(包括架空线路与电缆引入线在内),并且通至邻接( )的门全部闭锁,以及室外高压设备全部停电(包括架空线路与电缆引入线在内)。 A. 工具室 B. 控制室 C. 高压室 D. 蓄电池室 11. 倒闸操作的基本条件之一:防误闭锁装置不得随意退出运行,停用防误闭锁装置应经本单位分管生产的行政副职或( )批准。 A. 总工程师 B. 防误操作装置负责人 C. 正职 12. 倒闸操作时要求操作( )应具有明显的标志,包括:命名、编号、分合指示、旋转方向、切换位置的指示及设备相色等。 A. 机构 B. 设备 C. 系统 D. 间隔13. 待用间隔(母线连接排、引线已接上母线的备用间隔)应有名称、编号,并列入( )管辖范围。 A. 运行 B. 检修 C. 调度 14. 倒闸操作时要求单人操作、( )在倒闸操作过程中严禁解锁。 A. 检修人员 B. 运行人员 C. 操作人员 15. 换流站内,运行中高压直流系统直流场中性区域设备、站内临时接地极、接地极线路及接地极均应视为( )。 A. 非带电体 B. 带电体 C. 部分带电体

java多线程面试题

java多线程面试题 1.什么是多线程编程?什么时候使用? 多线程一般用于当一个程序需要同时做一个以上的任务。多线程通常用于GUI交互程序。一个新的线程被创建做一些耗时的工作,当主线程保持界面与用户的交互。 2.为什么wait(),notify()和notifyall()函数定义在Object类里面? 因为所有类都是继承于Object类,这样所有类就可以简单的进行多线程编程了。 3.wait()方法和sleep()方法有什么不同? sleep()方法执行后仍然拥有线程,只是延时。而wait方法放弃了线程控制,其它线程可以运行,想要再次运行是要重新开始。 4.Thread和Runnable有什么不同? JA V A线程控制着程序执行的主路径。当你用java命令调用JVM时,JVM创建了一个隐式线程来执行main方法。Thread类提供了主线程调用其它线程并行运行的机制。 Runnable接口定义了一个能被Thread运行的类。实现Runnable的类只需要实行run方法。可以很灵活的扩展现在的已经继承自其它父类的类。而thread则不可以,因为java 只允许继承一个父类。 Runnable可以共享数据,Thread是一个类,而Runnable是一个接口 5.我可以重载start()方法么? 可以重载,重载后还要重载run()方法, 9.编译运行下面的代码会发生什么? 1.public class Bground extends Thread{ 2.public static void main(String argv[]) 3.{ 4. Bground b = new Bground(); 5. b.run(); 6.} 7.public void start()

电力安规考试试题题库完整

安规考试试题题库 一、填空题 1、《电力安全工作规程》是依据国家有关法律、法规,结合(电力生产的实际)制定的。 2、作业人员的基本条件之一:具备必要的安全生产知识,学会(紧急救护法),特别要学会触电急救。 3、因故间断电气工作连续(三个月)以上者,应重新学习《安规》,经考试合格后,方能恢复工作。 4、外来人员参与公司系统电气工作,工作前,设备运行管理单位应告知现场电气设备接线情况、(危险点)和安全注意事项。5(各类作业人员)有权拒绝违章指挥和强令冒险作业;在发现直接危及人身、电网和设备安全的紧急情况,有权停止作业或者在采取可能的紧急措施后撤离作业场所,并立即报告。 6、雷雨天气,需要巡视(室外)高压设备时,应穿绝缘靴,并不准靠近避雷器和避雷针。 7、室高压设备发生接地时,不得接近故障点(4m)以;室外高压设备发生接地时,不得接近故障点(8 m)以。 8、一个(工作负责人)只能发给一工作票。 9、所有工作人员(包括工作负责人)不许(单独)进入、滞留在高压室和室外高压设备区。 10工作人员工作中正常活动围与10kV带电设备的安全距离应不小于(0.35 )m。

11、“五防”是指:(防止误分(合)断路器)、(防止带负荷拉(合)隔离开关)、(防止带电挂(合)接地线(接地开关)),(防止带地线(接地开关)合断路器)、(防止误入带电间隔)。 12、倒闸操作可以通过(就地操作)、(遥控操作)、(程序操作)完成。 13、所谓运用中的电气设备,系指(全部带有电压)或(一部分带有电压)及(一经操作即带有电压)的电气设备。 14、可以不用填写操作票的工作有:(事故应急处理)、(拉合断路器(开关)的单一操作)、(拉开接地刀闸或拆除全站仅有的一组接地线)。 15、带电作业应在良好天气下进行。如遇雷电听见雷声、看见闪电、雪雹、雨雾等不得进行带电作业。风力(大于5级)时,或湿度(大于80%)时,不宜进行带电作业。 16、带电作业工具使用前应根据工作负荷校核(机械强度),并满足规定的(安全系数)。 17、安全标志的种类有:禁止标志、(警告标志)、指令标志、(提示标志)、文字标志。 18、专责监护人临时离开时,应通知被监护人员(停止工作)或离开工作现场,待专责监护人回来后方可恢复工作。

精编新版国家电网安规完整考试题库500题(含标准答案)

国家电网安规考试题库500题[含答案] 一、单选题 1.高压试验应填用()。 A.变电站(发电厂)带电作业工作票 B.变电站(发电厂)第一种工作票 C.变电站(发电厂)第二种工作票 D.变电站(发电厂)电力电缆工作票B 2.所有升降口、大小孔洞、楼梯和平台,应装设不低于()mm高的栏杆和不低于100mm高的护板。 A.900 B.950 C.1000 D.1050 D 3.通信系统同继电保护、安全自动装置等复用通道(包括载波、微波、光纤通道等)的检修、联动试验,需将高压设备停电或做安全措施者,应该填用变电站(发电厂) ()。 A.第一种工作票 B.第二种工作票 C.带电作业工作票 D.事故紧急抢修单A 4.在经继电保护出口跳闸的发电机组热工保护、水车保护及其相关回路上工作,需将高压设备停电或做安全措施者,应该填用变电站(发电厂)()。 A.第二种工作票 B.第一种工作票 C.带电作业工作票 D.事故紧急抢修单B 5.继电保护装置、安全自动装置、自动化监控系统在运行中改变装置原有定值时,不影响一次设备正常运行的工作,应该填用变电站(发电厂)()。 A.第一种工作票 B.第二种工作票 C.带电作业工作票 D.安全措施票B

6.对于连接电流互感器或电压互感器二次绕组并装在屏柜上的继电保护、安全自动装置上的工作,可以不停用所保护的高压设备或不需做安全措施者,应该填用变电站(发电厂)()。 A.第一种工作票 B.第二种工作票 C.带电作业工作票 D.工作任务单B 7.在继电保护、安全自动装置、自动化监控系统等及其二次回路,以及在通信复用通道设备上检修及试验工作,可以不停用高压设备或不需做安全措施者,应该填用变电站(发电厂)()。 A.第一种工作票 B.带电作业工作票 C.第二种工作票 D.工作任务单C 8.二次系统上工作,监护人由技术水平较高及有经验的人担任,执行人、恢复人由 ()担任,按二次工作安全措施票的顺序进行。 A.工作负责人 B.专责监护人 C.工作许可人 D.工作班成员D 9.工作人员在现场工作过程中,凡遇到异常情况(如直流系统接地等)或断路器(开关)跳闸、阀闭锁时,不论与本身工作是否有关,应立即(),保持现状,待查明原因,确定与本工作无关时方可继续工作。 A.停止工作 B.报告运维人员 C.报告领导 D.报告调控人员A 10.工作人员在现场工作过程中,若因本身工作所引起异常情况或断路器(开关)跳闸、阀闭锁,应保留现场并立即通知(),以便及时处理。 A.工作负责人 B.工区领导 C.调控人员 D.运维人员D

java多线程试题答案

多线程 一.选择题 1.下列说法中错误地一项是() A.线程就是程序.线程是一个程序地单个执行流 B.多线程是指一个程序地多个执行流.多线程用于实现并发 2.下列哪个一个操作不能使线程从等待阻塞状态进入对象阻塞状态() A.等待阴塞状态下地线程被()唤 B.等待阻塞状态下地纯种被()中断 C.等待时间到 D.等待阻塞状态下地线程调用()方法 3.下列哪个方法可以使线程从运行状态进入其他阻塞状态() A. 4.下列说法中错误地一项是() A.一个线程是一个类地实例 B.线程从传递给纯种地实例()方法开始执行 C.线程操作地数据来自实例 D.新建地线程调用()方法就能立即进入运行状态 5.下列关于类提供地线程控制方法地说法中,错误地一项是() A.在线程中执行线程地()方法,则线程等待直到执行完成 B.线程通过调用()方法来中断其阻塞状态 C.若线程调用方法()返回值为,则说明正在执行中 D.()方法返回当前线程地引用 6.下列说法中,错误地一项是() A.对象锁在()语句执行完之后由持有它地线程返还 B.对象锁在()语句中出现异常时由持有它地线程返还 C.当持有锁地线程调用了该对象地()方法时,线程将释放其持有地锁 D.当持有锁地线程调用了该对象地构造方法时,线程将释放其持有地锁 7.下面地哪一个关键字通常用来对对象地加锁,从而使得对对象地访问是排他地 A. 二.填空题 . 在操作系统中,被称做轻型地进程是线程 . 多线程程序设计地含义是可以将一个程序任务分成几个并行地任务 . 在程序中,()方法地实现有两种方式:实现接口和继承类.多个线程并发执行时,各个线程中语句地执行顺序是确定地,但是线程之间地相对执行顺序是不确定地 中地对象锁是一种独占地排他锁 .程序中可能出现一种情况:多个线种互相等待对方持有地锁,而在得到对方地锁之前都不会释放自己地锁,这就是死锁b5E2R。 .线程地优先级是在类地常数和之间地一个值 .处于新建状态地线程可以使用地控制方法是()和(). .一个进程可以包含多个线程 三.简答题

电厂、供电公司安规考试试题及答案

电厂、供电公司安规考试试卷 姓名:考试时间: 90分钟成绩: 一、单项选择题:(共40题,每题1.5分,共60分) 1、装设接地线应先接接地端,后接导体端,接地线应接触良好,连接应可靠。拆接地线的顺序与此( D )。 A、一样 B、过程 C、工作 D、相反 2、装设接地线( A )单人进行。 A、严禁 B、必须 C、不宜 3、在高压回路上工作,需要拆除部分接地线应征得( B )或值班调度员的许可,工作完毕后立即恢复。 A、领导 B、工作许可人 C、运行人员 D、工作负责人 4、工作票一份应保存在工作地点,由( C )收执;另一份由工作许可人收执,按值移交。 A、工作票签发人 B、当值调度 C、工作负责人 5、装设接地线应( A )。 A、先接接地端,后接导体端 B 先接导体端,后接接地端 C、顺序随意 6、电压等级10千伏及以下时,工作人员在进行工作中正常活动范围与设备带电部分的安全距离为( )。 7、在高压设备上工作需要全部停电或部分停电者,应填用( A )工作票。 A、第一种 B、第二种 C、带电作业 8、室内高压设备发生接地时,不得接近故障点( B )m以内。 A、 2.0 B、 4.0 C、 6.0 D、 8.0 9、检查检修( C )的危险,是工作许可人的安全责任之一。 A、人员有无误入带电间隔 B、人员有无碰触带电部分 C、设备有无突然来电 10、 ( C )是在电气设备上工作保证安全的组织措施。 A、停电申请 B、交接班制度 C、工作许可制度 11、验电前,应先在( D )设备上进行试验。 A、运用中的 B、待用 C、检修 D、有电 12、电气设备发生故障被迫紧急停止运行,需短时间内恢复的抢修和排除故障的工作,应( D )。 A、使用一种工作票 B、使用二种工作票 C、执行口头或电话命令 D、使用事故应急抢修单 13、工作许可人在完成施工现场的安全措施后,还需完成的手续包括( A ),工作班方可开始工作。 A、对工作负责人指明带电设备的位置注意事项。 B、确认检修设备不会突然来电 C、检查操作票正确性 14、装、拆接地线,应做好记录,交接班时应( C )。 A、重新记录 B、移交记录 C、交待清楚15、操作人和监护人应根据模拟图或接线图核对所填写的( C )。 A、操作票 B、操作范围 C、操作项目 16、工作许可人应对工作负责人指明带电设备的( C )和工作过程中的注意事项。 A、电压等级 B、距离 C、接线方式 D、位置 17、一张工作票上所列的检修设备应同时停、送电,开工前工作票内的全部安全措施( A )。 A、应一次完成 B、可分两次完成 C、可在工作许可后分批完成 18、倒闸操作由( C )填用操作票 A、调度员 B、班长 C、操作人员 D、运行人员 19、高压电气设备:电压等级在( D )伏及以上者。 A、250.0 B、380.0 C、500.0 D、1000.0 20、经常有人工作的场所及施工车辆上宜配备急救箱,存放急救用品,并应( B )经常检查、补充或更换。 A、由安全员 B、指定专人 C、指定班长 21、作业人员的基本条件规定,作业人员的体格检查每( C )至少一次。 A、三年 B、四年 C、两年 D、一年 22、检修设备停电,应使各方面有一个( B )断开点。 A、确认已断开的 B、明显的 C、可视的 23、高压验电必须戴( B )。 A、护目眼镜 B、绝缘手套 C、纱手套 24、雨雪天气时不得进行室外( C )。 A、验电 B、间接验电 C、直接验电 25、监护操作:由( B )进行同一项的操作。 A、一人 B、二人 C、三人 26、在室外高压设备上工作,工作地点四周围栏上悬挂适当数量的“止步,高压危险!”标示牌,标示牌必须朝向围栏( A )。 A、里面 B、外面 C、侧面 27、对于因平行或邻近带电设备导致检修设备可能( B )时,必须加装接地线或工作人员使用个人保安线。 A、安全距离不够 B、产生感应电压 C、触及 28、在电气设备上工作保证安全的技术措施之一是,当验明设备确已无电压后,应立即将检修设备接地并( A )。 A、悬挂标示牌 B、许可工作 C、三相短路 29、雷雨天气,需要巡视室外高压设备时,应穿( C ),并不得靠近避雷器和避雷针。 A、雨靴 B、胶鞋 C、绝缘靴 30、在一经合闸即可送电到( B )的隔离开关操作把手上,应悬挂“禁止合闸,有人工作!”或“禁止合闸,线路有人工作!”的标示牌。 A、检修地点 B、工作地点 C、工作现场 D、停电设备

安规考试试题题库答案

一、填空 1、在防火重点部位或场所以及禁止明火区动火作业,应填用动火工作票,动火工作票有下列两种:填用一级动火工作票、填用二级动火工作票。 2、设备不停电时的安全距离10KV就是 0.7 米,35KV 1 米,110KV_1、5______米,220KV___3___米。 3、一级动火工作票提前办理。一级动火工作票的有效期为 24 h,二级动火工作票的有效期为 120 h。动火作业超过有效期限,应重新办理动火工作票。 4、如送电操作需由电气值班人员进行时,应使用“送电联系单”。 5、长期停用或新领用的电动工具应用 500 V 的绝缘电阻表测量其绝缘电阻,如带电部件与外壳之间的绝缘电阻值达不到 2 MΩ,应进行维修处理。 6、所谓运用中的电气设备,指全部带有电压、一部分带有电压或一经操作即带有电压的电气设备。 7、专责监护人临时离开时,应通知被监护人员停止工作或指定临时负责人 ,待专责监护人回来后方可恢复工作。 8、凡在离地面(坠落高度基准面) 2 米及以上的地点进行的工作,都应视作高处作业。 9、触电急救,首先要使触电者迅速脱离电源 ,越快越好。因为电流作用的时间越长 ,伤害越大。 10、所有升降口、大小孔洞、楼梯与平台,必须装设不低于 1050 MM高栏杆与不低于 100 MM高护板。 11、“两票三制”当中的两票就是指工作票与操作票。 12、储存气瓶仓库周围 10米距离以内,不准堆放可燃物品,不准进行锻造、焊接、等工作,不准吸烟。 13、设备检修前,应放尽系统内的汽、水、油等介质,确认已泄压与温度符合工作条件后,方可开始工作。

14、在有火灾、爆炸、中毒、窒息、灼烫伤等危险以及粉尘危害的地点或设备内工作,应做好通风措施。 15、在盛装易燃易爆与有毒有害介质的设备上工作,应做好吹扫与清洗的置换措施。 16.坚决贯彻安全生产安全第一、综合治理、预防为主的方针。 17.几台锅炉排污系统合用一根总排污管时,不应有 2 台或以上的锅炉同时排污。 18.一级动火工作票经批准后由工作负责人递送值长 ,二级动火工作票经批准后由工作负责人送运行值班员。 19.雷雨天气,需要巡视室外高压设备时,应穿绝缘鞋 ,并不准靠近避雷器与避雷针。 20.生产厂房内外的电缆,在进入控制室、电缆夹层、控制柜、开关柜等处的电缆孔洞,必须用防火材料严密封闭。 21.锅炉吹灰前,应适当提高燃烧室负压 ,并保持燃烧稳定 ,吹灰时工作人员应戴手套。 22.清扫烟道、省煤器、再热器时,应打开所有的人孔门,以保证足够的通风。 23.电除尘器运行中,禁止清理阴极振打及大梁加热保温瓷瓶。 24.一级动火工作过程中,应每隔 2-4 h测定一次现场可燃气体、易燃液体的可燃蒸气含量或粉尘浓度就是否合格。 25.在锅炉运行中,禁止将安全阀解列。安全阀门应按照《电力工业锅炉压力容器监察规程》的规定,定期进行放汽试验。 26.任何电气设备上的标示牌,除原来放置人员或负责运行的值班员外,其她任何人员不准移动。 27.工作负责人在试运前将全体工作人员撤至安全地点,将所持工作票交给工作许可人人。

精选安规考试题库500题(含参考答案)

安规通则考试题库500题[含答案] 一、单选题 1.对于中断工作连续()以上人员,必须重新学习本规程,并经考试合格后,方能恢复工作。 (A) 1个月 (B) 2个月 (C) 3个月 (D) 6个月 答案:C 2.凡在热力.机械和热控设备.系统上进行安装.检修.维护或试验的工作, 必须填用() (A)热力机械工作票或外包热力机械工作票 (B)生产区域工作联系单或生产区域外包工程工作联系单 (C)事故紧急抢修单或动火安全措施票 (D)特殊作业安全措施票或热继作业安全措施票 答案:A 3.关于气(风)动工具的使用,说法错误的是() (A)更换工具附件前或工作结束时,应首先关闭供气管路阀门,并排尽余气 (B)在梯子或移动平台上使用风动工具,必须将梯子或平台固定牢固 (C)修理后的工具应进行试运转,试运转应在有防护的封闭区域内进行 (D)使用氧气瓶等高压气源作为风动工具的气源时,应遵从先缓后急逐步加压的方式 答案:D 4.喷灯的加油.放油以及拆卸喷火嘴或其他零件等工作,必须待喷火嘴( )后再进行。 (A)熄火泄压 (B)熄火冷却 (C)冷却泄压 答案:C 5.各级人员应牢记" ( ) "的安全生产方针,全面树立"安全就是信誉,安全就是效益,安全就是竞争力"的华能安全理念。 (A)安全第一,预防为主,综合治理 (B)安全第一,预防为主 (C)预防为主,重在救援 (D)救援为主,综合治理

答案:A 6.遇有电气设备着火时,应立即将有关设备的电源切断,然后进行救火。对可能带电的电气设备以及发电机.电动机等,不应使用()灭火。 (A)干式灭火器 (B)二氧化碳灭火器 (C)六氟丙烷灭火器 (D)泡沫式灭火器 答案:D 7.电梯在使用前应经有关部门检验合格,取得( )并制定安全使用规定和定期检验维护制度。电梯应有专责人负责维护管理。电梯的安全闭锁装置.自动装置.机械部分.信号照明等有缺陷时必须停止使用,并采取必要的安全措施,防止高空摔跌等伤亡事故。 (A)使用证 (B)操作证 (C)合格证 答案:C 8.企业必须对()和()进行三级安全教育培训,考试合格后方可上岗作业 (A) 所有新进入员工新入厂外来作业人员 (B) 所有员工所有外来作业人员 (C) 所有新参加工作员工新入厂外来作业人员 (D) 所有新进入员工所有外来作业人员 答案:A 9.热力设备检修需要断开电源时,在已拉开的开关.刀闸和检修设备控制开关的操作把手上,应悬挂()的警告牌,并取下操作保险。 (A)"危险,请勿靠近!" (B)"禁止合闸,有人工作!" (C)"正在检修!" (D)"有电,危险!"。 答案:B 10.下列不属于工作联系人的职责是:() (A)协助工作负责人检查工作票所填安全措施是否正确完备和运行人员所做安全措施是否符合现场实际条件。 (B)负责该项工作的全过程安全.质量监督 (C)必须经常到现场检查工作是否安全地进行。 (D)负责对工作负责人进行安全技术交底

JAVA 面试题总览(书签完整版)

JAVA面试题总览 JAVA基础 1.JAVA中的几种基本数据类型是什么,各自占用多少字节。 2.String类能被继承吗,为什么。 3.String,Stringbuffer,StringBuilder的区别。 4.ArrayList和LinkedList有什么区别。 5.讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数, 字段,当new的时候,他们的执行顺序。 6.用过哪些Map类,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么, 他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。 7.JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计, 你如何设计。 8.有没有有顺序的Map实现类,如果有,他们是怎么保证有序的。 9.抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接 口么。 10.继承和聚合的区别在哪。 11.IO模型有哪些,讲讲你理解的nio,他和bio,aio的区别是啥,谈谈reactor模型。 12.反射的原理,反射创建类实例的三种方式是什么。 13.反射中,Class.forName和ClassLoader区别。 14.描述动态代理的几种实现方式,分别说出相应的优缺点。 15.动态代理与cglib实现的区别。 16.为什么CGlib方式可以对接口实现代理。 17.final的用途。 18.写出三种单例模式实现。 19.如何在父类中为子类自动完成所有的hashcode和equals实现?这么做有何优劣。 20.请结合OO设计理念,谈谈访问修饰符public、private、protected、default在应 用设计中的作用。 21.深拷贝和浅拷贝区别。 22.数组和链表数据结构描述,各自的时间复杂度。 23.error和exception的区别,CheckedException,RuntimeException的区别。 24.请列出5个运行时异常。 25.在自己的代码中,如果创建一个https://www.360docs.net/doc/7644308.html,ng.String类,这个类是否可以被类加载器加 载?为什么。

电力安规题库

一、单项选择题 1、制定《电力安全工作规程》的目的是为了加强电力生产现场管理,规范()工作人员的行为,保证人身、电网和设备安全。 A、检修 B、运行 C、管理 D、各类 2、因故间断电气工作连续()以上者,应重新学习《安规》,经考试合格后,方能恢复工作。 A、三个月 B、半年 C、一年 3、()有权拒绝违章指挥和强令冒险作业;在发现直接危及人身、电网和设备安全的紧急情况,有权停止作业或者在采取可能的紧急措施后撤离作业场所,并立即报告。 A、各类作业人员 B、工作负责人 C、工作班人员 4、16、各单位可根据()制定《安规》补充条款和实施细则,经本单位分管生产的领导(总工程师)批准后执行。 A、有关规定 B、现场情况 C、过去的经验 5、室内高压设备发生接地时,不准接近故障点()以内。 A、2m B、3m C、4m D、5m 6、倒闸操作可以通过就地操作、遥控操作、程序操作完成。遥控操作、程序操作的设备应满足有关()。 A、安全要求 B、安全条件 C、技术条件 7、操作设备的命名、编号、(),旋转方向、切换位置的指示及设备相色等的标志应清晰明显。 A、接地标识 B、分合指示 C、禁止标志 8、操作票要事先由()连续编号,按编号顺序使用。 A、计算机生成 B、工区专责管理人员 C、变电站 9、供电单位或施工单位到用户变电站内施工时,工作票应由()签发工作票的供电单位、施工单位或用户单位签发。 A、可以 B、指定 C、有权 10、变更工作负责人或增加工作任务,如工作票签发人无法当面办理,应(),并在工作票登记簿和工作票上注明。 A、经调度值班员同意 B、经运行值班负责人同意 C、经工作许可人同意 D、通过电话联系 11、工作期间,若工作负责人必须长时间离开工作现场时,应()。原、现工作负责人应做好必要的交接。 A、由原工作票签发人变更工作负责人,履行变更手续,并告知全体工作人员及工作许可人 B、经原工作票签发人同意后告知全体工作人员及工作许可人 C、经工作许可人同意,并告知全体工作人员 12、在电气设备上工作,保证安全的技术措施由()或有权执行操作的人员执行。 A、检修人员 B、试验人员 C、运行人员 13、在显示屏上进行操作的开关和刀闸的(),均应相应设置“禁止合闸,有人工作!”或“禁止合闸,线路有人工作!”以及“禁止分闸!”的标记。 A、操作处 B、操作把手上 C、操作机构上 14、在室内,设备充装SF6气体时,周围环境相对湿度应不大于(),同时应开启通风系统。 A、70% B、80% C、90% 15、一级动火在首次动火时,各级审批人和动火()均应到现场检查防火安全措施

安规考试题库及答案

一、单项选择题 1、作业人员对本规程应()考试一次。因故间断电气工作连续()以上者,应重新学习本规程,并经考试合格后,方能恢复工作。 A、一年,3个月 B、半年,6个月 C、两年,3个月 2、电气设备操作后的位置检查应以设备实际位置为准,无法看到实际位置时,可通过设备机械位置指示、电气指示、仪表及各种遥测、遥信信号的变化,且至少应有()及以上指示已同时发生对应变化,才能确认该设备已操作到位。 A、两个 B、三个 C、四个 D、一个 3、二次工作安全措施票的工作内容及安全措施内容由()填写,由技术人员或班长审核并签发。 A、工作许可人 B、工作票签发人 C、工作负责人 D、工作班成员 4、()不许单独进入、滞留在高压室内和室外高压设备区内。 A、工作班成员 B、所有工作人员(不包括工作负责人) C、工作票签发人 D、所有工作人员(包括工作负责人) 5、工作期间,工作负责人若因故暂时离开工作现场时,应指定能胜任的人员临时代替,离开前应将工作现场交待清楚,并告知工作班成员。原工作负责人返回工作现场时,_________。 A、不必履行同样的交接手续 B、也应履行同样的交接手续 C、只能做为工作班成员参加参加工作 D、告知工作班成员既可 6、在未办理工作票终结手续以前,______不准将停电设备合闸送电。 A、运行人员 B、检修人员 C、调度员 D、任何人员 7、在控制盘、配电箱、电源干线上工作应执行______。 A、第一种工作票 B、第二种工作票 C、带电作业工作票 8、在所有的措施完成后,必须经过()的共同现场检查和认可。 A、工作负责人和许可人 B、工作负责人和签发人 C、工作负责人和工作班成员 9、在没有脚手架或者在没有栏杆的脚手架上工作,高度超过___时,应使用安全带或采取其他可靠的安全措施。 A、2m B、 1.5m C、 1.9m D、3m 10、操作票和工作票均应保存____。 A、三个月 B、半年 C、一年 D、一个月 11、在工作期间,工作票应始终保留在()手中。 A、工作负责人 B、工作票签发人 C、工作班成员 12、工作票中停电线路名称栏应填写() A、线路电压等级和线路名称 B、线路停电变电站 C、线路停电开关 13、在高压设备上工作,应至少由( )进行,并完成保证安全的组织措施和技术措施。 A、三人 B、两人 C、四人 D、一人 14、专责监护人临时离开时,应通知( )停止工作或离开工作现场,待专责监护人回来后方可恢复工作。 A、特种作业人员 B、工作班全体人员 C、被监护人员 D、高空作业人员 15、第一、二种工作票的有效时间,以()为限。 A、批准的检修期 B、工作申请时间 C、工作所需最长时间 16、工作票签发人不在工作现场时,工作票的修改可由工作负责人进行,但必须经()同意。 A、工作许可人 B、工作班人员 C、工作票签发人 17、工作监护制度规定,工作负责人在( )时,可以参加工作班工作。 A、一经操作即可停电 B、邻近设备已停 C、全部停电 D、部分停电 18、在没有脚手架或者在没有栏杆的脚手架上工作,高度超过( )时,应使用安全带,或采取其他可靠的安全措施。 A、1.0m B、1.5m C、2.0m D、2.5m 19、建筑工、油漆工等非电气人员工作时,工作票发给() A、工作票负责人 B、工作票许可人 C、监护人 20、在几个电气连接部分上依次进行不停电的同一类型工作() A、可以发给一张一种工作票

安规考试题库含参考答案精编版

安规考试题库含参考答 案 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

变电运维安规考试题库 班级姓名得分_______ 一、选择题 1.外单位承担或外来人员参与公司系统电气工作的工作人员,应熟悉国家电网公司电力安全工作规程(变电部分),并经考试合格,经()认可,方可参加工作。A.聘用单位B.设备运行管理单位C.发包单位D. 用工单位 2.各类作业人员有权()违章指挥和强令冒险作业。A.制止B.拒绝C. 举报 3.电力安全工作规程要求,作业人员对电力安全工作规程应()考试一次。A.两年B.每年C.三年 4.作业现场的生产条件和安全设施等应符合有关标准、规范的要求,工作人员的()应合格、齐备。A.穿戴B.劳动防护用品C.器材D.工具 5.各类作业人员应被告知其作业现场和工作岗位存在的危险因素、防范措施及()。A.事故紧急处理措施B.紧急救护措施C.应急预案D.逃生方法 6.为加强电力生产现场管理,规范各类工作人员的行为,保证人身、()和设备安全,依据国家有关法律、法规,结合电力生产的实际,制定电力安全工作规程。A.施工B.电网C.网络D.电力 7.作业人员的基本条件之一:经()鉴定,作业人员无妨碍工作的病症。A.领导B.医疗机构C.医师D.专业机构 8.作业人员的基本条件规定,作业人员的体格检查每()至少一次。A.三年B.四年C.两年D.一年 9.高压电气设备:电压等级在()伏及以上者。 A.1000 B.250 C.500 D.380 10.高压设备上全部停电的工作,系指室内高压设备全部停电(包括

架空线路与电缆引入线在内),并且通至邻接()的门全部闭锁,以及室外高压设备全部停电(包括架空线路与电缆引入线在内)。 A.工具室 B.控制室 C.高压室 D.蓄电池室 11.倒闸操作的基本条件之一:防误闭锁装置不得随意退出运行,停用防误闭锁装置应经本单位分管生产的行政副职或()批准。A.总工程师B.防误操作装置负责人C.正职12.倒闸操作时要求操作()应具有明显的标志,包括:命名、编号、分合指示、旋转方向、切换位置的指示及设备相色等。A.机构B.设备 C.系统 D.间隔 13.待用间隔(母线连接排、引线已接上母线的备用间隔)应有名称、编号,并列入()管辖范围。A.运行 B.检修 C.调度 14.倒闸操作时要求单人操作、()在倒闸操作过程中严禁解锁。A.检修人员B.运行人员C.操作人员15.换流站内,运行中高压直流系统直流场中性区域设备、站内临时接地极、接地极线路及接地极均应视为()。A.非带电体B.带电体C.部分带电体 16.高压室的钥匙至少应有(),由运行人员负责保管,按值移交。 A.三把 B.五把 C.四把 17.遥控操作、程序操作的设备必须满足有关()。 A.安全条件 B.技术条件 C.安全要求 18.10千伏、20千伏、35千伏户外配电装置的裸露部分在跨越人行过道或作业区时,若导电部分对地高度分别小于2.7m、2.8m、2.9m,该()两侧和底部须装设护网。A.导电部分B.裸露部分C.配电装置 19.倒闸操作要求操作中应认真执行监护()制度(单人操作时也必须高声唱票),宜全过程录音。A.录音B.复查C.复诵

安规考试题库及标准答案

--- 一、单项选择题 1、作业人员对本规程应()考试一次。因故间断电气工作连续()以上者,应重新学习本规程,并经考试合格后,方能恢复工作。A、一年,3个月B、半年,6个月C、两年,3个月 2、电气设备操作后的位置检查应以设备实际位置为准,无法看到实际位置时,可通过设备机械位置指示、电气指示、 仪表及各种遥测、遥信信号的变化,且至少应有()及以上指示已同时发生对应变化,才能确认该设备已操作到位。 A、两个B 、三个C、四个D 、一个 )填写,由技术人员或班长审核并签发。、二次工作安全措施票的工作内容及安全措施内容由(3 A、工作许可人B 、工作票签发人C 、工作负责人D、工作班成员 )不许单独进入、滞留在高压室内和室外高压设备区内。、(4 A、工作班成员B 、所有工作人员(不包括工作负责人) C、工作票签发人D 、所有工作人员(包括工作负责人) 、工作期间,工作负责人若因故暂时离开工作现场时,应指定能胜任的人员临时代替,离开前应将工作现场交待清楚,5 _________。并告知工作班成员。原工作负责人返回工作现场时, A、不必履行同样的交接手续B 、也应履行同样的交接手续

C、只能做为工作班成员参加参加工作 D、告知工作班成员既可 ______不准将停电设备合闸送电。、在未办理工作票终结手续以前,6 A、运行人员B 、检修人员C、调度员D 、任何人员 ______。、在控制盘、配电箱、电源干线上工作应执行7 A、第一种工作票B 、第二种工作票C 、带电作业工作票 )的共同现场检查和认可。、在所有的措施完成后,必须经过(8 A、工作负责人和许可人C 、工作负责人和工作班成员、工作负责人和签发人B ___时,应使用安全带或采取其他可靠的安全措施。、在没有脚手架或者在没有栏杆的脚手架上工作,高度超过9 A、B 、 1.5mC 、D、3m1.9m2m 10、操作票和工作票均应保存____。 C 、一年A、三个月 D 、一个月、半年B11、在工作期间,工作票应始终保留在()手中。 C、工作票签发人A、工作负责人B、工作班成员 12、工作票中停电线路名称栏应填写() A 、线路电压等级和线路名称B、线路停电变电站C、线路停电开关 )、在高压设备上工作,应至少由(13进行,并完成保证安全的组织措施和技术措施。 、四人BA、三人、两人DC、一人 14、专责监护人临时离开时,应通知() 停止工作或离开工作现场,待专责监护人回来后方可恢复工作。 BA、特种作业人员、工作班全体人员

2018年电力安全工作规程考试题库

2018年电力安全工作规程考试题库 一、单项选择题 1.《安规》(热力和机械部分)规定,各级领导人员都不准发布违反安规的命令,工作人员接到违反安规的命令,应( A )。 A 拒绝执行 B坚决执行 C商量执行 D先不执行 2.《安规》(热力和机械部分)规定,任何工作人员除自己严格执行本规程外,还应督促周围的人员遵守本规程,如发现有违反本规程,并足以危及人身和设备安全者,应立即( C ) A 上报 B 离开 C 制止 D 警告 2.《安规》(热力和机械部分)规定,所有升降口、大小孔洞、楼梯和平台,必须装设不低于1050毫米高栏杆和不低于( B )mm高的护板。 A 90 B 100 C 110 D 120 3.《安规》(热力和机械部分)规定,运行中所需小量的润滑油和日常需用的油壶、油枪、必须存放在在指定地点的( B ) A 现场 B 储藏室内 C 设备间 D 油区 4.《安规》(热力和机械部分)规定,生产厂房的取暖如用较高压力的热源时,必须装有减压装置,并装( D ) A 疏水阀 B 逆止阀 C 放气阀 D 安全阀 5.《安规》(热力和机械部分)规定,油管道不宜用法兰盘连接,在热体附近的法兰盘,必须装金属罩壳,热管道或其他热体保温层外必须再包上金属皮,如检修时发现保温有渗油,应( A )保温 A 更换 B 拆除 C 清理 D 恢复

6.《安规》(热力和机械部分)规定,冬季室外作业采用临时取暖实施时,必须做好相应的防火措施,高处作业的场所必须设置( D ) A 安全隔离装置 B 防火报警装置 C 警示标志 D 紧急疏散通道 7.《安规》(热力和机械部分)规定,电梯的安全闭锁装置、自动装置、机械部分、信号照明等有缺陷时( B )停止使用,并采取必要的( B ),放置高空坠落的事故。 A 必须、手段 B 必须、安全措施 C 可以、应急措施 D 可以、措施 8.《安规》(热力和机械部分)规定,生产厂房装设的电梯,在使用前应经有关部门检查合格,取得合格证并制订安全使用规定和( B )。 A 操作规程 B 定期检验维护制度 C 应急措施 D 检修标准 9.《安规》(热力和机械部分)规定,油管应尽量少用法兰盘连接,在热体附近的法兰盘,必须装金属罩壳,禁止使用( D)或(D)。 A 塑料垫、钢垫 B 胶皮垫、石棉垫 C 金属垫、石棉垫 D 塑料垫、胶皮垫 11.《安规》(热力和机械部分)规定,在楼板和结构上打孔或规定地点以外安装起重滑车或堆放重物等,必须事先经过本单位( A )的审核许可。 A有关技术部门B安监部C总工程师D安全员 12.《安规》(热力和机械部分)规定,使用可燃物品(如乙炔、氢气、油类、瓦斯等)的人员,必须熟悉这些材料的( C )。 A 特性 B 品质 C 特性及防火防爆规则 D 防火防爆规则 13.《安规》(热力和机械部分)规定,使用有放射性( B )的人员,必须熟悉放射防护及应急处理常识。 A设备B物质C产品D工具

2020年国家电网《安规》考试判断题库及答案(共100题)

2020年国家电网《安规》考试判断题库及 答案(共100题) 1. 单人操作时若需进行登高或登杆操作,应做好相应的安全措施。( ) (1.0分) 答案:错误 2. 可以在转动着的高压电动机附属装置回路上进行工作。( ) (1.0分) 答案:错误 3. 雷电时,禁止测量线路绝缘。( ) (1.0分) 答案:正确 4. 链条葫芦在使用中如发生卡链情况,应将重物卸下后方可进行检修。( ) (1.0分) 答案:错误 5. 起吊重物不准让其长期悬在空中。有重物悬在空中时,禁止驾驶人员离开驾驶室或做其他工作。( ) (1.0分) 答案:正确

6. 有缺陷的带电作业工具应及时修复,不合格的应予报废,禁止继续使用。( ) (1.0分) 答案:正确 7. 绝缘架空地线应视为不带电体。( ) (1.0分) 答案:错误 8. 转动着的发电机、同期调相机,如未加励磁,则可认为没有电压。( ) (1.0分) 答案:错误 9. 带电水冲洗前要确知设备绝缘是否良好。( ) (1.0分) 答案:正确 10. 直流换流站阀厅内的试验,地面加压人员与阀体层作业人员应通过对讲机保持联系,防止高处作业人员未撤离阀体时误加压。( ) (1.0分) 答案:正确 11. 在发生人身触电事故时,可以不经许可,即行断开有关设备的电源,但事后应立即报告调度控制中心(或设备运维管理单位)和上级部门。( ) (1.0分)

答案:正确 12. 操作票票面应清楚整洁,不得任意涂改。( ) (1.0分) 答案:正确 13. 脚手架的安装、拆除和使用,应执行《国家电网公司电力安全工作规程[火(水)电厂(动力部分)]》中的有关规定及国家相关规程规定。( ) (1.0分) 答案:正确 14. 高压电气设备都应安装完善的防误操作闭锁装置。( ) (1.0分) 答案:正确 15. 操作票应填写设备的双重名称。( ) (1.0分) 答案:正确 16. 单人值班的变电站或发电厂升压站操作时,运维人员应根据发令人用电话传达的操作指令进行,可不用操作票。( ) (1.0分) 答案:错误 17. 上爬梯应逐档检查爬梯是否牢固,上下爬梯应抓牢,应两手同时抓一个梯阶。( ) (1.0分)

相关文档
最新文档