1、在Java中什么是进程,什么是线程进程:进程是程序执行的一个实例,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

线程:有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。

在java中,进程大致等于JVM,线程属于JVM,线程可以被java应用程序在运行时动态的创建和停止。

2、Java程序中至少有几个线程?

每个java程序在main线程内执行,因此每个java程序至少有一个线程

3、每一个Java线程都有哪些属性线程的标识符id

线程的名称

线程优先级

线程的状态

线程所属的线程组

4、线程有哪些状态NEW:初始状态,线程被构建,但是还没有调用start方法

RUNNABLE:运行状态,Java线程将被操作系统中的就绪和运行两种状态笼统的称作运行中

BLOCKED:阻塞状态,表示线程阻塞于锁

WAITING:等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其它线程做出一些特定的动作(通知或中断)

TIME_WAITING: 超时等待状态,该状态不同于WAITING,它可以在指定的时间内自行返回的

TERMINATED:终止状态,表示当前线程已经执行完毕

JDK安装目录下bin目录下执行命令jstack工具可以查看代码运行时的线程信息。

5、线程的创建方式继承Thread类创建线程类

实现Runnable接口

一般实现Runnable接口的方式更好一些,关于两者的对比,Thread和Runnable的区别

6、线程为什么不能通过Stop方法停止

stop方法过于暴力,会直接终止线程,并且立即释放这个线程所持有的锁,而这些锁是用来维持对象一致性的,如果此时,写线程写入的数据正写入一半,并强行终止,那么对象就会被写坏,同时由于锁已经被释放,另外一个等待该锁的读线程就顺利成章的读到了这个不一致的问题。 --- 《Java高并发程序设计》. 并行程序基础

7、下面的程序会输出什么public class MultiThreading {    private static class MyThread extends Thread {        public MyThread(String name) {            super(name);

}        @Override

public void run() {

System.out.println(Thread.currentThread().getName());

}        public static void main(String[] args) {

MyThread myThread = new MyThread("myThread");

myThread.run();

myThread.start();

}

}

}

调用run方法时,是在main线程内部执行的。main

myThread

8、什么是Daemon线程

守护线程是一种特殊的线程,在后台默默的完成一些系统性的服务,比如垃圾回收,JIT线程就可以理解为守护线程。与之对应的是用户线程,用户线程可以理解为系统的工作线程,它会完成程序应该要完成的业务操作,如果用户线程全部结束,就意味着这个程序无事可做了,当一个Java应用内,只有守护线程时,Java虚拟机就会自然退出。

守护线程必须在线程start之前设置,否则会抛出IllegalThreadStateException

9、在Java中,那些操作是原子性的?读和写的操作变量是 主类型的(primitive variables)除了long 和 double

读和写的变量声明了volatile

java如何输出线程的标识符_Java多线程面试题相关推荐

  1. java 线程 异常中断_java多线程并发之旅-19-InterruptedException 中断异常处理及中断机制...

    引言 如果对 Java 中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此. 中断机制是如何工作的?捕获或检测到中断后,是抛出 InterruptedException 还 ...

  2. java线程代码实现_Java 多线程代码实现讲解

    作为一个完全面向对象的语言,Java提供了类 java.lang.Thread 来方便多线程编程,这个类提供了大量的方法来方便我们控制自己的各个线程.那么如何提供给 Java 我们要线程执行的代码呢? ...

  3. java线程与操作系统其他线程共享时间片_Java多线程(一)

    ***********************第14章 多线程 ********************************** 一.why 想让 两段代码 同时执行 的时候使用多线程 publi ...

  4. java线程同时执行_Java 多线程同时执行

    我们创建三个任务与三个线程,让三个线程启动,同时执行三个任务. 任务类必须实现 Runable 接口,而 Runable 接口只包含一个 run 方法.需要实现 这个方法来告诉系统线程将如何运行. 创 ...

  5. java线程集合点_Java多线程学习笔记(三) 甚欢篇

    使人有乍交之欢,不若使其无久处之厌 <小窗幽记>很多时候,我们需要的都不是再多一个线程,我们需要的线程是许多个,我们需要让他们配合.同时我们还有一个愿望就是复用线程,就是将线程当做一个工人 ...

  6. java两个线程循环打印_java循环打印 多线程

    问题描述 Java多线程,循环打印"我是多线程"10次. 思路: 1 开启5个线程 "我" "是" "多" " ...

  7. java 线程面试题_JAVA多线程面试题(一)

    1.进程和线程的区别 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单一进 ...

  8. java线程知识梳理_Java多线程——多线程相关知识的逻辑关系梳理

    1 学习多线程知识的根本目标 多线程知识的根本目标是:设计稳健的并发程序. 当然,本文无法回答这个实践性很强的问题(这与具体的业务相关,涉及到具体的策略),本文主要阐述相关知识之间的关系,希望初学者不 ...

  9. java线程池 锁_java多线程——锁

    这是多线程系列第四篇,其他请关注以下: 如果你看过前面几篇关于线程的文字,会对线程的实现原理了然于胸,有了理论的支持会对实践有更好的指导,那么本篇会偏重于线程的实践,对线程的几种应用做个简要的介绍. ...

最新文章

  1. 11个有用的移动网页开发App和HTML5框架
  2. 鸿雁电器oa系统中决策支持模块效果
  3. 开箱即用的VScode C++环境
  4. qt5.5 静态编译 mysql_QT5.3.2+mingw静态编译(生成exe大约14M)
  5. 玻璃质感_素描丨零基础,你也可以画出玻璃质感
  6. 06 | 全局锁和表锁 : 给表加个字段怎么有这么多阻碍
  7. android 约束布局的坑,android - 使用android约束布局2.0.0 Flow将项目放置一行 - 堆栈内存溢出...
  8. CSS3 动画关键帧 @keyframes
  9. PyTorch学习—10.nn中网络层的具体使用
  10. thinkphp 3.2视图里添加URL参数 实例
  11. python knn模型_kNN模型(Python3.x环境)
  12. 信号与系统 实验三 傅里叶变换、系统的频域分析
  13. 用Python学《微积分B》(微积分应用)
  14. 硬核!教你三种方法,实现微信自定义修改地区!
  15. PB 导出的Excel,打开会提示文件格式和扩展名不匹配问题
  16. 能够自动绘制网络拓扑图的软件——WGCLOUD
  17. js将阿拉伯数字转换成中文的大写数字
  18. 常见的协议的协议号及端口
  19. 北京二手房房价分析(建模篇)
  20. 日常电脑办公快捷键小技巧

热门文章

  1. 要来吗,不错的WPF技术交流群!(大批干货今日自取)
  2. UOS LoongArch 上成功安装.NET Core 3.1
  3. 【DotNetMLLearn】.NET Core人工智能系列-概述
  4. .NET 下载、文档访问新姿势
  5. 面向.NET开发人员的Dapr——总结和前景
  6. WPF 分页控件添加路由事件
  7. sql server和mysql的区别是什么
  8. ASP VNext 开源服务容错处理库Polly
  9. 关于.NET5在IIS中部署的几个问题总结
  10. 如何校验内存数据的一致性,DynamicExpresso 算是帮上大忙了