`

java线程问答

    博客分类:
  • java
阅读更多

今天去高*面试了一下,让人很气愤,一个不懂技术的面试官怎么干的,我记录下来给大家留作记录

问:classA 有两个synchronized methodA,methodB,objA = new classA   问objA.methodA,objA.methodB

线程安全吗?  面试官回答不安全

我都不回答了,看我的代码和输出结果,以后大家出去面试对这样的面试官要鄙视一下

package com.example;

public class Sync {
	public synchronized String getA() throws InterruptedException {
		System.out.println(Thread.currentThread().getName());
		Thread.currentThread().sleep(1000);
		System.out.println("-----------------------------");
		return "-----------a";
	}

	public synchronized String getB() throws InterruptedException {
		System.out.println(Thread.currentThread().getName());
		Thread.currentThread().sleep(1000);
		System.out.println("-----------------------------");
		return "-----------b";
	}
	
	public static void main(String[] args) {
		final Sync sync = new Sync();
		final Sync sync2 = new Sync();
		new Thread(new Runnable() {
			@Override
			public void run() {
				try {
					System.out.println(sync.getA());
				} catch (InterruptedException e) {
				}
			}
		}).start();
		new Thread(new Runnable() {
			@Override
			public void run() {
				try {
					System.out.println(sync.getB());
				} catch (InterruptedException e) {
				}
			}
		}).start();
	}
	
}

 Thread-1

-----------------------------

-----------b

Thread-0

-----------------------------

-----------a

 

分享到:
评论

相关推荐

    JAVA知识问答器

    【JAVA知识问答器】是一个基于Java编程语言开发的智能问答系统,它涵盖了Java语言的大量知识点,旨在帮助用户深入理解和掌握Java技术。该系统利用单例模式设计,确保在整个应用程序中只有一个实例存在,以提高资源...

    热门Java面试多线程面试题问答Top50共17页.pdf

    7. **线程优先级**:理解Java线程的优先级,以及它在实际应用中的效果和限制。 8. **线程安全**:学习线程安全的类和非线程安全的类,以及如何确保对象在多线程环境下的正确使用。 9. **并发容器**:如...

    基于java的智能问答系统

    在Java这个强大的平台上构建智能问答系统,可以充分利用其丰富的类库和强大的多线程处理能力,为用户提供无缝的交互体验。 一、系统架构 Java智能问答系统通常采用三层架构:用户界面层、业务逻辑层和数据访问层。...

    java问答式教程

    在本《Java 问答式教程》中,我们将深入探讨Java编程语言的各种核心概念和技术,以问答的形式呈现,便于读者理解并解决实际问题。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和安全性著称。本...

    Java经典问答 pdg格式

    Java作为一门广泛使用的编程语言,其经典问答涵盖了众多领域,包括基础语法、面向对象特性、集合框架、多线程、异常处理、IO流、网络编程、反射机制、JVM优化、设计模式等。这份"Java经典问答"资料,无疑是准备面试...

    java问答式教程 很好的

    Java问答式教程是针对Java初学者精心设计的一种学习资源,旨在通过解答常见问题来帮助学习者深入理解Java编程语言的核心概念和技术。这份教程涵盖了多个关键知识点,包括但不限于基础语法、面向对象编程、异常处理、...

    JAVA实现知识问答服务器

    在本项目"JAVA实现知识问答服务器"中,我们将探讨如何使用Java编程语言构建一个能够处理问题与答案交互的服务器。这个服务器是针对初学者设计的,因此它将涵盖Java的基础概念,同时也为进阶学习者提供了实践平台。...

    java面试问答(重要).docx

    Java是世界上最流行的编程语言之一,尤其在企业级应用...这些知识涵盖了Java基础、多线程、Web开发等多个方面,对于Java实习生来说是非常重要的面试准备内容。在实际面试中,深入理解和灵活运用这些概念是非常关键的。

    java技术问答.doc

    "java技术问答" Java技术问答是Java程序员必须掌握的基本概念和技术细节。本文将详细介绍Java中String和StringBuffer的区别、Java基础知识、ArrayList和Vector的区别、HashMap和Hashtable的区别、char型变量中能否...

    java面试100问答

    ### Java面试100问答知识点总结 #### 1. 面向对象的特征 面向对象编程(OOP)是现代软件开发中广泛采用的一种编程范式。它主要由以下四个特征构成: - **抽象**:抽象是面向对象编程的基础之一。它通过忽略对象不必...

    JAVA多线程和并发基础面试问答(翻译)

    多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题

    有关Java经典问答

    在Java编程领域,经典问答通常涉及了许多核心概念和技术,这些内容是每个Java开发者都需要掌握的基础。以下是基于"Java经典问答"这一主题的一些关键知识点的详细解释: 1. **基础概念**: - **Java是什么**:Java...

    Java经典问答大全

    在Java的学习过程中,掌握各种经典问答是提升技能的关键。以下是一些Java编程中常见的问题和答案,这些问题涵盖了基础概念、语法特性、面向对象原则、异常处理、集合框架、多线程、网络编程等多个方面。 1. **Java...

    线程的基础知识及常见问题.--多线程

    Java中的Thread类提供了构造函数,可以传入Runnable对象作为执行体,而Python中则通过`threading`模块创建线程。 2. **线程状态**:线程有五种基本状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞...

    Java经典问答.rar

    "Java经典问答"可能包含了各种Java编程中常见的问题和解答,旨在帮助开发者深化对Java的理解,提升编程技能。以下是根据标题和描述可能涵盖的一些Java知识点: 1. **基础语法**:包括变量声明、数据类型(基本类型...

    Java高校师生在线问答交流平台源码.zip

    源码中可能包含了Java的核心概念,如类、对象、接口、异常处理、多线程、网络编程等。 “源码软件”标签意味着我们能够查看并理解系统的内部工作原理,这对于学习和修改代码非常有价值。源码中可能会包含MVC(Model...

    JAVA基础问答大全

    【JAVA基础问答详解】 1. 关于final, finally, finalize的区别 - final:final用于修饰类、变量和方法,表示不可变性。对于类,final意味着不能有子类;对于变量,final变量一旦初始化就不能再改变;对于方法,...

    知识问答器 多线程操作

    5. **设计模式**:在实现多线程问答器时,可能会用到生产者消费者模型、线程池(ThreadPool)等设计模式,以优化线程的创建和管理,减少资源消耗。 6. **线程池**:Java的ExecutorService接口和ThreadPoolExecutor...

Global site tag (gtag.js) - Google Analytics