java多线程并发面试题及答案
单项选择题(每题2分,共10题)
1.启动一个线程调用的方法是()
A.runB.startC.beginD.execute
答案:B
2.线程在生命周期中要经历5种状态,新建状态、就绪状态、运行状态、阻塞状态和()
A.休眠状态B.死亡状态C.挂起状态D.终止状态
答案:B
3.以下哪个类是Java中线程的基类()
A.RunnableB.ThreadC.ExecutorD.Callable
答案:B
4.多线程中,用于实现线程同步的关键字是()
A.staticB.finalC.synchronizedD.volatile
答案:C
5.线程的优先级范围是()
A.1-5B.1-10C.0-9D.0-10
答案:B
6.使当前线程暂停执行一段时间的方法是()
A.waitB.sleepC.yieldD.notify
答案:B
7.当线程调用sleep方法进入阻塞状态,以下哪种情况会使它重新进入就绪状态()
A.另一个线程调用该线程的interrupt方法B.睡眠时间到
C.线程的run方法执行完毕D.以上都不对
答案:B
8.以下哪个接口可以用来创建有返回值的线程()
A.RunnableB.CallableC.ThreadD.Executor
答案:B
9.一个线程对象的具体操作是由run方法定义,该方法定义在()
A.Thread类B.Runnable接口C.自定义类D.以上都可以
答案:D
10.线程池核心线程数的参数是()
A.corePoolSizeB.maximumPoolSizeC.keepAliveTimeD.unit
答案:A
多项选择题(每题2分,共10题)
1.以下哪些方法属于Thread类()
A.start()B.run()C.sleep(longmillis)D.wait()
答案:ABC
2.多线程并发编程中,线程安全的类有()
A.StringBufferB.ArrayListC.HashMapD.Vector
答案:AD
3.线程同步的机制有()
A.互斥锁B.信号量C.读写锁D.自旋锁
答案:ABCD
4.以下哪些会导致线程阻塞()
A.调用wait方法B.调用sleep方法C.进行I/O操作D.获得对象锁
答案:ABC
5.线程的状态包括()
A.NEWB.RUNNABLEC.BLOCKEDD.TERMINATED
答案:ABCD
6.关于Runnable接口说法正确的是()
A.实现该接口的类可以作为线程任务B.实现该接口必须重写run方法
C.它是一个函数式接口D.可以通过Thread类来启动实现该接口的线程任务
答案:ABCD
7.以下哪些类在java.util.concurrent包中()
A.ExecutorServiceB.ConcurrentHashMapC.CountDownLatchD.ThreadLocal
答案:ABC
8.多线程中,以下哪些方法可以唤醒等待的线程()
A.notify()B.notifyAll()C.signal()D.signalAll()
答案:ABCD
9.关于线程池说法正确的是()
A.可以提高线程的创建和销毁效率B.可以控制并发线程数量
C.有不同的线程池实现类D.核心线程数和最大线程数不能相同
答案:ABC
10.以下哪些是线程安全的集合类()
A.CopyOnWriteArrayListB.Collections.synchronizedList(newArrayList())
C.ConcurrentLinkedQueueD.HashSet
答案:ABC
判断题(每题2分,共10题)
1.一个线程对象只能调用一次start方法启动线程。()
答案:对
2.调用线程的yield方法会使线程进入阻塞状态。()
答案:错
3.所有的Java对象都有wait和notify方法。()
答案:对
4.线程池中的线程执行完任务后会立即销毁。()
答案:错
5.同