14 Java 多线程中常见面试题

1,多线程有几种实现方案,分别是几种?
继承Thread 类
实现Runnable 接口
通过线程池,实现Callable 接口

2,同步有几种方式,分别是什么,并分别说出其同步锁对象?
同步代码块 ==> 同步锁为: 任意对象
同步方法 ==> 同步锁对象为: this
静态同步方法==> 同步锁对象为: 本类名.class
3,启动一个线程时,run()还是start,说说区别?
star():用来启动线程,并调用线程中的run方法
run(): 执行该线程对象要执行的任务
4,sleep()和wait()方法的区别?
sleep() 不释放锁对象,释放cpu使用权,再休眠的时间内不要唤醒
wait(): 释放锁对象,释放cpu使用权,在等待时间内,能唤醒

5,为什么wait(),notify(),notifyAll() 等方法都定义再Object类中
因为这些方法在使用的时候要注明所属的锁,而锁又是任意对象,所以这些方法是定义在Object 类中的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 7,190评论 1 15
  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 8,072评论 1 18
  • 1、Synchronized关键字 1、方法中的变量不存在非线程安全问题,都是线程安全的。 2、两个线程访问同一个...
    AI乔治阅读 4,990评论 1 7
  • 林炳文Evankaka原创作品。转载自http://blog.csdn.net/evankaka 本文主要讲了ja...
    ccq_inori阅读 3,873评论 0 4
  • 一扩展javalangThread类二实现javalangRunnable接口三Thread和Runnable的区...
    和帅_db6a阅读 3,392评论 0 1