`
noia_zhou
  • 浏览: 15783 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

面试时遭遇多线程

阅读更多
      最近正忙于找工作,前天参加了迅雷的笔试,里面考到的很多东西都忘记了,惭愧啊~~~
      记得最后一题是有关多线程调度的,做web应用做久了,多线程也仅限于简单的轮询,而没有做过什么调度的事,结果当然是做不出来了。 回来后痛定思痛,找了多线程方面的书研究了一下,发现其实也不是太难。有个同事说过,要在面试中成长。亡羊补牢,这也算是一种进步吧,虽然有点后知后觉。
      记得题目是这样的:创建三个线程分别为A,B,C, 要求打印输入如下结果:ABCABCABC
我现在写了个简单的例子,实现了这个要求:
代码为:
class PrintMsg implements Runnable {
	//开始打印
	public synchronized void startPrint() {
		notify();
	}

	@Override
	public synchronized void run() {
		for (int i = 0; i < 10; i++) {
			try {
				wait();
				System.out.print(Thread.currentThread().getName());
				notify();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

public class ThreadDemo {
	public static void main(String[] args) throws Exception {
		PrintMsg printMsg = new PrintMsg();
		Thread threadA = new Thread(printMsg, "A");
		Thread threadB = new Thread(printMsg, "B");
		Thread threadC = new Thread(printMsg, "C");

		threadA.start();
		Thread.sleep(100);//休眠,保证thread进入wait堆栈的顺序

		threadB.start();
		Thread.sleep(100);

		threadC.start();
		Thread.sleep(100);

		printMsg.startPrint();
	}
}

代码运行结果为:
ABCABCABCABCABCABCABCABCABCABC
分享到:
评论

相关推荐

    多线程面试题

    在Java编程领域,多线程是面试中常见且重要的知识点,尤其对于系统设计和高并发处理的岗位至关重要。本文将围绕“多线程面试题”这一主题,深入探讨相关概念、技术及其应用。 1. **线程的概念**:线程是程序执行的...

    C#面试题 包括 ADO.net 多线程等

    C#面试题 包括 ADO.net 多线程等 C#面试题 包括 ADO.net 多线程等 C#面试题 包括 ADO.net 多线程等 C#面试题 包括 ADO.net 多线程等 C#面试题 包括 ADO.net 多线程等

    c++笔试面试之网络和多线程

    在C++笔试面试中,网络和多线程是两个经常被提及的重要知识点。本篇文档详细列举了关于网络部分的面试题目,同时也涉及了与多线程相关的TCP/IP协议栈的建立和断开过程。以下为详细的知识点总结: 1. TCP服务创建...

    面试题c++mysql多线程操作系统面试题c++mysql多线程操作系统面试题c++mysql多线程操作系统

    在准备面试时,阅读《TCP/IP详解》等相关文档(如tcp.docx)将帮助你深入理解网络通信协议,而《多线程》(多线程.docx)和《C++》(c++.docx)文档将覆盖上述关于C++和多线程的内容。《面向对象的三个特征》(面向...

    .net开发人员面试题-多线程.pdf

    ".net开发人员面试题-多线程" .NET 多线程是现代 CPU 多核背景下的技术,能够充分发挥 CPU 资源。多线程问题可以用来评估面试者的技术深度和知识广度。 多线程的概念 多线程是一种编程技术,允许多个线程同时执行...

    NET面试题-多线程编程与线程同步1

    【描述】:本篇文章主要探讨.NET框架下的多线程编程与线程同步相关的面试问题,包括线程与进程的区别、GUI线程访问控件限制、后台线程与前台线程、锁的使用以及线程同步的不同策略。 【标签】:“软件/插件”、...

    哈哈iOS多线程面试题

    在探讨iOS多线程的面试题目时,我们首先要明确进程和线程的定义及其关系。进程可以被理解为计算机上一次执行活动的程序,它是操作系统分配资源的基本单元,拥有独立的内存空间和运行所需的全部资源。当我们提到一个...

    2020面试题总结多线程篇.pdf

    面试题总结——多线程篇 一、多线程实现方式 多线程实现方式主要有四种:继承 Thread 类、实现 Runable 接口、实现 Callable 接口、通过 FutureTask 包装器。这四种方式可以满足不同的需求,例如继承 Thread 类...

    多线程面试59题(含答案).pdf

    多线程面试59题(含答案)是关于多线程编程的知识点总结,涵盖了多线程的基本概念、优点、线程和进程的区别、Java 实现多线程的方式、启动线程方法的区别、终止线程的方式、线程的生命周期、wait()和 sleep()方法的...

    多线程,多线程面试题,C#源码.zip

    对于C#开发者来说,理解和掌握多线程技术不仅能够优化代码性能,也是面试中常被问到的知识点。 首先,我们要理解什么是线程。线程是操作系统分配CPU时间的基本单元,一个进程可以包含一个或多个线程。主线程通常...

    多线程面试相关知识点

    多线程编程的目的,就是"最大限度地利用CPU资源",当某一线程的处理不需要占用CPU而只和I/O等资源打交道时,让需要占用CPU资源的其它线程有机会获得CPU资源。从根本上 说,这就是多线程编程的最终目的。 单线程...

    java多线程面试题

    以上知识点涵盖了多线程编程在Java中的基础理论和实际操作,包括线程的创建、运行、异常处理以及线程安全等问题,这些都是在进行Java多线程面试时常见的问题,对于理解和掌握Java多线程编程至关重要。

    java面试题之多线程.pdf

    7. **线程安全**:当多个线程访问共享数据时,确保数据的完整性和一致性。使用`synchronized`、`volatile`、`Atomic`类等机制保证线程安全。 8. **线程池**:通过`ExecutorService`和`ThreadPoolExecutor`管理线程...

    2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题

    2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题、Netty面试题、Elasticsearch面试题、Tomcat面试题、Dubbo面试题、Kafka面试题、Linux面试题、2021面试题、java面试...

    Java面试题、JVM面试题、多线程面试题、并发编程、设计模式面试题

    Java面试题、JVM面试题、多线程面试题、并发编程、设计模式面试题、SpringBoot面试题、SpringCloud面试题、MyBatis面试题、Mysql面试题、VUE面试题、算法面试题、运维面试题。 收集汇总各行业笔试or编程题解题思路 ...

    史上最全 Java 多线程面试题及答案

    了解这些核心概念后,开发者可以更好地应对Java多线程面试中可能出现的问题,同时也能在实际项目中灵活运用多线程技术,提升程序性能。多线程编程虽然复杂,但掌握好相关的工具和原理,就能有效地解决并发问题,编写...

    java经典多线程面试题

    以下是一些经典的多线程面试题知识点: 1. Java中的线程状态有哪些? - 新建状态(New):线程对象创建后,但尚未启动。 - 就绪状态(Runnable):处于就绪状态的线程随时可能被CPU调度执行。 - 运行状态...

    java面试题_多线程(68题)

    Java多线程是Java编程中的核心概念,尤其在面试中,它是考察开发者高级技能和并发理解的关键领域。这里,我们将深入探讨与Java多线程相关的68个面试问题,涵盖基础知识、线程安全、同步机制、线程池、死锁等关键知识...

    个人总结40个Java多线程面试问题和答案

    Java多线程面试问题和答案总结 Java多线程是一种高级的编程技术,能够充分发挥多核CPU的优势,防止阻塞,简化模型建立,提高程序的效率和可维护性。下面是40个Java多线程面试问题和答案的总结,涵盖了多线程的基本...

Global site tag (gtag.js) - Google Analytics