首先关于线程能够先看我之前这篇博文熟悉一下线程生命周期的图示以及文字说明

好開始了:

1.java 中有几种方法能够实现一个线程?

答:有两种实现方法。各自是继承 Thread类与实现Runnable接口。

1.线程类继承Thread类的语法:

(public) class 类名 extends Thread{
public void run(){//这里写线程的内容}}

2.线程类实现java.lang.Runnable类的语法:

(public) class 类名 implements Runnable{
public void run(){//这里写线程的内容}}

2.sleep() 和 wait() 有什么差别 ?

答:

sleep是线程类(Thread)的方法,导致此线程暂停运行指定时间,给运行机会给其他线程,可是监控状态依旧保持。到时后会自己主动恢复。调用sleep不会释放对象锁。

wait是Object类的方法。对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,仅仅有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

3.当一个线程进入一个对象的一个 synchronized 方法后,其他线程是否可进入此对象的其他方法 ?

答:

不能,一个对象的一个synchronized方法仅仅能由一个线程訪问。

4.请说出你所知道的线程同步的方法。

答:

wait():使一个线程处于等待状态。而且释放所持有的对象的lock。

sleep():使一个正在运行的线程处于睡眠状态。是一个静态方法,调用此方法要捕捉InterruptedException异常。

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程。而且不是按优先级。

Allnotity():唤醒全部处入等待状态的线程。注意并非给全部唤醒线程一个对象的锁。而是让它们竞争。

5.同步和异步有何异同。在什么情况下分别使用他们?举例说明。

答:

假设数据将在线程间共享。比如正在写的数据以后可能被还有一个线程读到。或者正在读的数据可能已经被还有一个线程写过了,那么这些数据就是共享数据。必须进行同步存取。

当应用程序在对象上调用了一个须要花费非常长时间来运行的方法,而且不希望让程序等待方法的返回时。就应该使用异步编程,在非常多情况下採用异步途径往往更有效率。

每天五个java相关面试题(7)--线程篇的更多相关文章

  1. 每天五个java相关面试题(8)--spring篇

    首先呢,假设有从事前端开发的大神或者准备从事前端开发的小伙伴无意看到我这篇博客看到这段文字欢迎加我的QQ:[ 845415745 ].即将走入社会的菜鸟大学生有关于前端开发的职业问题想请教或者一起探讨 ...

  2. 每天五个java相关面试题(3)

    1. Servlet的生命周期是什么? 答: 第一次请求: 构造方法->init() -> service() -> doGet()/doPost() 以后的请求:service() ...

  3. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇]     隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...

  4. JAVA技术专题综述之线程篇(1)

    本文详细介绍JAVA技术专题综述之线程篇 编写具有多线程能力的程序经常会用到的方法有: run(),start(),wait(),notify(),notifyAll(),sleep(),yield( ...

  5. java多线程面试题_线程并发面试题

    1.什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成一个 ...

  6. 《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)

    1.简介 前面宏哥一连几篇介绍如何通过开源jar包Log4j.jar.log4j2.jar和logback实现日志文件输出,Log4j和logback确实很强大,能生成三种日志文件,一种是保存到磁盘的 ...

  7. Java相关面试题总结+答案(五)

    [异常] 74. throw 和 throws 的区别? throw 是真实抛出一个异常: throws 是声明可能会抛出一个异常. 75. final.finally.finalize 有什么区别? ...

  8. Java相关面试题总结+答案(九)

    [MySQL] 164. 数据库的三范式是什么? 第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项. 第二范式:属性完全依赖于主键(满足第一范式的前提下),即任意一个字段只依赖 ...

  9. Java相关面试题总结

    本文分为十九个模块,分别是: Java 基础.容器.多线程.反射.对象拷贝.Java Web .异常.网络.设计模式.Spring/Spring MVC.Spring Boot/Spring Clou ...

随机推荐

  1. Orchard 前台权限与自定义权限

    一:关于前台权限 1:只允许自己看到 首先,我们需要确定在 Role 设置页面,用户所对应的 View Page by others 和 View all content 未被选中.备注,我们首先和得 ...

  2. FastJson、Jackson、Gson进行Java对象转换Json的细节处理

    前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...

  3. SSI(Server Side Include)简单介绍

    Server-side include(server端包含) Server-side include(server端包含)是浏览器向server请求您的文档时并入您的文档的一个文件. 当訪问者浏览器请 ...

  4. Html.AntiForgeryToken() 防止CSRF攻击 的AJaX应用

    有关Html.AntiForgeryToken()的使用其实网上的说明很多了,比如http://blog.csdn.net/cpytiger/article/details/8781457 那么我们写 ...

  5. ZMQ和MessagePack的简单使用(转)

    近段日子在做一个比较复杂的项目,其中用到了开源软件ZMQ和MessagePack.ZMQ对底层网络通信进行了封装,是一个消息处理队列库, 使用起来非常方便.MessagePack是一个基于二进制的对象 ...

  6. [leetcode]Clone Graph @ Python

    原题地址:https://oj.leetcode.com/problems/clone-graph/ 题意:实现对一个图的深拷贝. 解题思路:由于遍历一个图有两种方式:bfs和dfs.所以深拷贝一个图 ...

  7. Android WindowManager实现悬浮窗效果 (一)——与当前Activity绑定

    最近有学生做毕业设计,想使用悬浮窗这种效果,其实很简单,我们可以通过系统服务WindowManager来实现此功能,本章我们来试验一下在当前Activity之上创建一个悬浮的view. 第一步:认识W ...

  8. uva 10712 - Count the Numbers(数位dp)

    题目链接:uva 10712 - Count the Numbers 题目大意:给出n,a.b.问说在a到b之间有多少个n. 解题思路:数位dp.dp[i][j][x][y]表示第i位为j的时候.x是 ...

  9. FastText 文本分类使用心得

    http://blog.csdn.net/thriving_fcl/article/details/53239856 最近在一个项目里使用了fasttext[1], 这是facebook今年开源的一个 ...

  10. js 正则表验证输入

    输入1-9的整数 <input type="text" class="form-control" style="width: 60px;disp ...