文章 2023-05-31 来自:开发者社区

Java2EE练习及面试题_chapter08多线程

面试01java中有几种方法可以实现一个线程(jdk5.0之前)?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 答:有两种实现方法,分别是继承Thread类与实现Runnable接口。 用synchronized关键字修饰同步方法,反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查....

文章 2023-05-04 来自:开发者社区

JAVA面试官:请说说如何设计线程安全的单例模式?

单例模式已经被讲烂了,这边复习一下双重检测锁下的线程安全的单例模式。(单例模式复习顶配)public class MySingleton { private static volatile MySingleton mySingleton; private MySingleton(){} public static MySingleton newInstance(){ if(m...

文章 2023-04-30 来自:开发者社区

Java老掉牙的面试问题:线程交替打印问题,分析实操一下 下

举例, 如果交替打印,到100 就停止, 也就是 从1~100  线程A ,线程B ,线程 B 交替打印。ok,代码稍作调整 :加上2个值一个是打印的数字,这个会一直 +1 输出;一个是用于线程循环的,之前是while(true) ,这样会一直跑。如果 终止标记还是false,就继续执行:每个打印方法都加上判断和累计+1的代码:看看效果:整体代码贴一下:import java.util....

Java老掉牙的面试问题:线程交替打印问题,分析实操一下 下
文章 2023-04-30 来自:开发者社区

Java老掉牙的面试问题:线程交替打印问题,分析实操一下 上

实例实战思路主角要做的事简单分析思路简图代码一个老掉牙的java面试问题 , 多线程交替打印。有打印 ABC 的, 有打印 123 的, 有打印到100的 。其实都一样。ps: 最近好多小伙伴问这个,这个题这么热门么?实例实战思路拿一个来做示例, 就交替打印ABC. (文末也说下从1到100的)一起看看这个小题目 :基于 Spring Boot + MyBatis Plus + Vue &...

Java老掉牙的面试问题:线程交替打印问题,分析实操一下   上
文章 2023-04-16 来自:开发者社区

Java面试题:实现线程间通信和线程等待

目录一、两个线程同时执行二、一个线程去等待另一个线程三、两个线程交叉运行四、一个线程去等待多个线程五、多个线程之间互相等待六、主线程获取子线程执行结果一、两个线程同时执行需求:假设有两个线程,一个是线程 A,另一个是线程 B,两个线程分别依次打印 1-3 三个数字实现代码package com.example; public class Demo { public static void...

文章 2023-04-12 来自:开发者社区

Java 最常见的面试题:多线程锁的升级原理是什么?

在Java中,锁共有4种状态,级别从低到高依次为:无状态锁,偏向锁,轻量级锁和重量级锁状态,这几个状态会随着竞争情况逐渐升级。锁可以升级但不能降级。锁升级的图示过程:

Java 最常见的面试题:多线程锁的升级原理是什么?
文章 2023-04-12 来自:开发者社区

Java 最常见的面试题:在 java 程序中怎么保证多线程的运行安全?

线程安全在三个方面体现:原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic,synchronized);可见性:一个线程对主内存的修改可以及时地被其他线程看到,(synchronized,volatile);有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序,(happens-before原则)。

文章 2023-04-12 来自:开发者社区

一道非常棘手的 Java 面试题:i++ 是线程安全的吗?

i++ 是线程安全的吗?相信很多中高级的 Java 面试者都遇到过这个问题,很多对这个不是很清楚的肯定是一脸蒙逼。内心肯定还在质疑,i++ 居然还有线程安全问题?只能说自己了解得不够多,自己的水平有限。先来看下面的示例来验证下 i++ 到底是不是线程安全的。1000个线程,每个线程对共享变量 count 进行 1000 次 ++ 操作。网络异常,图片无法展示|上面的例子我们所期望的结果应该是 1....

文章 2023-03-30 来自:开发者社区

Java 最常见的面试题:线程有哪些状态?

线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态。就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态。运行状态。线程调度程序将处于就绪状态的线程设置为当前线程,此时线....

文章 2023-03-30 来自:开发者社区

Java 最常见的面试题:创建线程有哪几种方式?

①. 继承Thread类创建线程类定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。创建Thread子类的实例,即创建了线程对象。调用线程对象的start()方法来启动该线程。②. 通过Runnable接口创建线程类定义runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注