最近正忙于找工作,前天参加了迅雷的笔试,里面考到的很多东西都忘记了,惭愧啊~~~
记得最后一题是有关多线程调度的,做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++笔试面试中,网络和多线程是两个经常被提及的重要知识点。本篇文档详细列举了关于网络部分的面试题目,同时也涉及了与多线程相关的TCP/IP协议栈的建立和断开过程。以下为详细的知识点总结: 1. TCP服务创建...
"面试中多线程问题" 多线程是 Java 编程中一个重要的概念,掌握多线程可以帮助开发者更好地编写高效、稳定的程序。以下是面试中常见的多线程问题和解释: 1. 实现多线程的几种方法? Java 中有两种方式可以实现多...
".net开发人员面试题-多线程" .NET 多线程是现代 CPU 多核背景下的技术,能够充分发挥 CPU 资源。多线程问题可以用来评估面试者的技术深度和知识广度。 多线程的概念 多线程是一种编程技术,允许多个线程同时执行...
【描述】:本篇文章主要探讨.NET框架下的多线程编程与线程同步相关的面试问题,包括线程与进程的区别、GUI线程访问控件限制、后台线程与前台线程、锁的使用以及线程同步的不同策略。 【标签】:“软件/插件”、...
Java中的多线程是面试中常见的话题,涵盖了操作系统的基础概念以及Java并发库的高级特性。以下是对这些知识点的详细解释: 1. **线程**:线程是操作系统调度的基本单元,一个进程中可以有多个线程并发执行。在多...
在探讨iOS多线程的面试题目时,我们首先要明确进程和线程的定义及其关系。进程可以被理解为计算机上一次执行活动的程序,它是操作系统分配资源的基本单元,拥有独立的内存空间和运行所需的全部资源。当我们提到一个...
面试题总结——多线程篇 一、多线程实现方式 多线程实现方式主要有四种:继承 Thread 类、实现 Runable 接口、实现 Callable 接口、通过 FutureTask 包装器。这四种方式可以满足不同的需求,例如继承 Thread 类...
多线程面试59题(含答案)是关于多线程编程的知识点总结,涵盖了多线程的基本概念、优点、线程和进程的区别、Java 实现多线程的方式、启动线程方法的区别、终止线程的方式、线程的生命周期、wait()和 sleep()方法的...
对于C#开发者来说,理解和掌握多线程技术不仅能够优化代码性能,也是面试中常被问到的知识点。 首先,我们要理解什么是线程。线程是操作系统分配CPU时间的基本单元,一个进程可以包含一个或多个线程。主线程通常...
多线程编程的目的,就是"最大限度地利用CPU资源",当某一线程的处理不需要占用CPU而只和I/O等资源打交道时,让需要占用CPU资源的其它线程有机会获得CPU资源。从根本上 说,这就是多线程编程的最终目的。 单线程...
以上知识点涵盖了多线程编程在Java中的基础理论和实际操作,包括线程的创建、运行、异常处理以及线程安全等问题,这些都是在进行Java多线程面试时常见的问题,对于理解和掌握Java多线程编程至关重要。
在准备面试时,阅读《TCP/IP详解》等相关文档(如tcp.docx)将帮助你深入理解网络通信协议,而《多线程》(多线程.docx)和《C++》(c++.docx)文档将覆盖上述关于C++和多线程的内容。《面向对象的三个特征》(面向...
7. **线程安全**:当多个线程访问共享数据时,确保数据的完整性和一致性。使用`synchronized`、`volatile`、`Atomic`类等机制保证线程安全。 8. **线程池**:通过`ExecutorService`和`ThreadPoolExecutor`管理线程...
2022java面试题、JVM面试题、多线程面试题、并发编程、Redis面试题、MySQL面试题、Java2022面试题、Netty面试题、Elasticsearch面试题、Tomcat面试题、Dubbo面试题、Kafka面试题、Linux面试题、2021面试题、java面试...
Java面试题、JVM面试题、多线程面试题、并发编程、设计模式面试题、SpringBoot面试题、SpringCloud面试题、MyBatis面试题、Mysql面试题、VUE面试题、算法面试题、运维面试题。 收集汇总各行业笔试or编程题解题思路 ...
了解这些核心概念后,开发者可以更好地应对Java多线程面试中可能出现的问题,同时也能在实际项目中灵活运用多线程技术,提升程序性能。多线程编程虽然复杂,但掌握好相关的工具和原理,就能有效地解决并发问题,编写...
在Java编程领域,多线程是一项至关重要的技术,特别是在开发高效、响应迅速的应用程序时。以下是一些关于Java多线程的面试题及其答案,涵盖了基础概念、并发控制、线程安全以及性能优化等方面。 1. **什么是Java多...