java如何输出线程的标识符_Java多线程面试题
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多线程面试题相关推荐
- java 线程 异常中断_java多线程并发之旅-19-InterruptedException 中断异常处理及中断机制...
引言 如果对 Java 中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此. 中断机制是如何工作的?捕获或检测到中断后,是抛出 InterruptedException 还 ...
- java线程代码实现_Java 多线程代码实现讲解
作为一个完全面向对象的语言,Java提供了类 java.lang.Thread 来方便多线程编程,这个类提供了大量的方法来方便我们控制自己的各个线程.那么如何提供给 Java 我们要线程执行的代码呢? ...
- java线程与操作系统其他线程共享时间片_Java多线程(一)
***********************第14章 多线程 ********************************** 一.why 想让 两段代码 同时执行 的时候使用多线程 publi ...
- java线程同时执行_Java 多线程同时执行
我们创建三个任务与三个线程,让三个线程启动,同时执行三个任务. 任务类必须实现 Runable 接口,而 Runable 接口只包含一个 run 方法.需要实现 这个方法来告诉系统线程将如何运行. 创 ...
- java线程集合点_Java多线程学习笔记(三) 甚欢篇
使人有乍交之欢,不若使其无久处之厌 <小窗幽记>很多时候,我们需要的都不是再多一个线程,我们需要的线程是许多个,我们需要让他们配合.同时我们还有一个愿望就是复用线程,就是将线程当做一个工人 ...
- java两个线程循环打印_java循环打印 多线程
问题描述 Java多线程,循环打印"我是多线程"10次. 思路: 1 开启5个线程 "我" "是" "多" " ...
- java 线程面试题_JAVA多线程面试题(一)
1.进程和线程的区别 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单一进 ...
- java线程知识梳理_Java多线程——多线程相关知识的逻辑关系梳理
1 学习多线程知识的根本目标 多线程知识的根本目标是:设计稳健的并发程序. 当然,本文无法回答这个实践性很强的问题(这与具体的业务相关,涉及到具体的策略),本文主要阐述相关知识之间的关系,希望初学者不 ...
- java线程池 锁_java多线程——锁
这是多线程系列第四篇,其他请关注以下: 如果你看过前面几篇关于线程的文字,会对线程的实现原理了然于胸,有了理论的支持会对实践有更好的指导,那么本篇会偏重于线程的实践,对线程的几种应用做个简要的介绍. ...
最新文章
- 11个有用的移动网页开发App和HTML5框架
- 鸿雁电器oa系统中决策支持模块效果
- 开箱即用的VScode C++环境
- qt5.5 静态编译 mysql_QT5.3.2+mingw静态编译(生成exe大约14M)
- 玻璃质感_素描丨零基础,你也可以画出玻璃质感
- 06 | 全局锁和表锁 : 给表加个字段怎么有这么多阻碍
- android 约束布局的坑,android - 使用android约束布局2.0.0 Flow将项目放置一行 - 堆栈内存溢出...
- CSS3 动画关键帧 @keyframes
- PyTorch学习—10.nn中网络层的具体使用
- thinkphp 3.2视图里添加URL参数 实例
- python knn模型_kNN模型(Python3.x环境)
- 信号与系统 实验三 傅里叶变换、系统的频域分析
- 用Python学《微积分B》(微积分应用)
- 硬核!教你三种方法,实现微信自定义修改地区!
- PB 导出的Excel,打开会提示文件格式和扩展名不匹配问题
- 能够自动绘制网络拓扑图的软件——WGCLOUD
- js将阿拉伯数字转换成中文的大写数字
- 常见的协议的协议号及端口
- 北京二手房房价分析(建模篇)
- 日常电脑办公快捷键小技巧