• java 多线程面试题


    1.什么是线程?

         线程是操作系统能够运行的最小调度单位,他被包含在进程中,是进程中实际运作的单位。

    2.线程和进程的区别

      线程是进程的子集,一个进程有很多线程,每个线程执行不同的任务,不同的进程使用不同的内存空间,而所有线程共享一片内存空间,每个线程都有单独的栈内存用来存储本地数据。

    3.如何在java中实现线程

      java。lang。Thread的实例就是一个线程,继承Thread或实现runnable接口

    4.用runnable接口,因为java不能实现多重继承

    5.Thread类的run和start方法有什么区别

      start方法用来启动新创建的线程,直接调用run在原来的线程中使用,没有启动新的线程,start方法才启动新的线程

    6.runnable和callable有什么不同

      callable的call方法可以返回值和抛出异常,而runnable的run方法没有,

    7.java内存模型是什么

      

    10 java中的volatile变量是什么?

      只有成员变量可以使用他,volatile变量可以保证下一个读取操作会在前一个写操作之后发生,

    11.什么是线程安全,vector是线程安全吗

      如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他变量的值也和预期的是一样的,就是线程安全的,

    12 java中什么是竞态条件,举个例子说明

      竞态条件会导致程序在并发情况下出现一些bugs,多线程对一些资源的竞争就会出现竞态条件,

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

      如果异常没有被捕获该线程将会停止执行

    14 两个线程如何实现共享数据

      可以通过共享对象来实现,

    15 什么是threadlocal变量

      每一个线程都有一个threadlocal就是每个线程都拥有自己独立的变量,竞争条件被彻底消除了,

    16 什么是futuretask

      表示一个可以取消的异步运算,他有启动和取消运算,

  • 相关阅读:
    mongodump
    spring发邮件被识别为垃圾邮件:org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163
    springboot拦截器注入bean失败实例
    springboot拦截器配置、消息头校验、重复请求过滤
    web接口服务端鉴权
    spring data jpa指定联合索引
    spring data jpa自定义更新实现实例
    win10根据端口查进程以及杀进程
    linux修改jar包中的springboot配置文件
    linux修改配置文件解决mysql中文乱码和指定数据库存储引擎
  • 原文地址:https://www.cnblogs.com/suixin84/p/6492482.html
Copyright © 2020-2023  润新知