[一组超难的逻辑推理面试题]1、.某省教委组织下属高校联合研制一个特种管理软件.现对有关参加的高校,作了如下安排:①A校与D校,至少有一个不参加;②D校E校F校中, 至少有一个校参加;③B校和C校都参加,要...+阅读
java面试题:请用多线程显示每三个数字为一组直到30
public class Test{
public static Object obj = new Object();
public static void main(String[] args){
new A().start();
new B().start();
}
}
class A extends Thread{
public void run(){
try{
synchronized(Test.obj){
for(int i = 1 ; i Test.obj.notify();
System.out.println("线程A:"+ i);
System.out.println("线程A:"+ (i+1));
System.out.println("线程A:"+ (i+2));
Test.obj.wait();
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
class B extends Thread{
public void run(){
try{
synchronized(Test.obj){
for(int i = 4 ; i Test.obj.notify();
System.out.println("线程B:"+ i);
System.out.println("线程B:"+ (i+1));
System.out.println("线程B:"+ (i+2));
Test.obj.wait();
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
面试问关于JAVA多线程从哪些方面回答呢
1. 应用场景
即作用是什么,哪些场景下需要,能解决哪类问题,通常情况下面试官更关心这个。
2. 实现方式
除了什么时候用,你还得告诉他怎么用。什么Thread、Runnable、线程池之类的丢上去,这些比较基础。
3. 线程同步
这个问题其实比较复杂。线程同步的概念最易于理解的案例就是在生产者消费者模式中的应用,你可以跟他讲讲这个。当然,这个涉及到对象锁基本就够了。
然后你再说说线程同步的几个方式,synchronized(对象、方法)、Lock、wait/notify之类的,说说它们的区别和应用场景。
最后提一提JDK中那些容器的线程同步问题,这样基本的使用算是不会有大问题了。
上面的东西你都能讲清楚,你多线程上的内容也就回个7788了,这块儿的面试基本没问题了
java多线程的一道题
文件:ThreadDemo.java
-----------------------------------------------------------
public class ThreadDemo {
public static void main(String[] args) {
Object obj = new Object();
ThreadA ta = new ThreadA(obj);
ThreadB tb = new ThreadB(obj);
ThreadC tc = new ThreadC(obj, ta, tb);
ta.start();
tb.start();
tc.start();
}
}
// 线程A
class ThreadA extends Thread {
private Object obj;
public ThreadA(Object obj) {
this.obj = obj;
}
public void run() {
System.out.println("A Start");
synchronized(obj) {
try {
obj.wait();
} catch(Exception e) {
e.printStackTrace();
}
}
System.out.println("A End");
}
}
// 线程B
class ThreadB extends Thread {
private Object obj;
public ThreadB(Object obj) {
this.obj = obj;
}
public void run() {
System.out.println("B Start");
synchronized(obj) {
try {
obj.wait();
} catch(Exception e) {
e.printStackTrace();
}
}
System.out.println("B End");
}
}
// 线程C
class ThreadC extends Thread {
private Object obj;
private ThreadA ta;
private ThreadB tb;
public ThreadC(Object obj, ThreadA ta, ThreadB tb) {
this.obj = obj;
this.ta = ta;
this.tb = tb;
}
public void run() {
System.out.println("C Start");
synchronized(obj) {
try {
sleep(1000);
obj.notifyAll();
} catch(Exception e) {
e.printStackTrace();
}
}
while(ta.isAlive() & tb.isAlive()); // 判断A线程和B线程是否已经结束
System.out.println("C End");
}
}
延伸阅读:
java面试题汇总ja面试题汇总今天去一家公司笔试,发挥的不好,被打击了一小下下.公司笔试的题目一般出的都有点变态,现将有的东西整理一下,以免下次再遇到这种问题~ 1.Ja是从( )语言改进重新设...
Java程序员面试中的多线程问题0、Ja中多线程同步是什么?在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个Ja线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致...
瞬联java面试题1)能说一下ja的反射(reflection)机制吗?(瞬联) 开放性和原因连接(causally-connected)是反射系统的两大基本要素 2)抽象类和接口有什么区别?(瞬联) 1.abstract class 在 Ja...
java线程面试题一、线程的四种状态 1. 新状态:线程已被创建但尚未执行(start() 尚未被调用)。 2. 可执行状态:线程可以执行,虽然不一定正在执行。CPU 时间随时可能被分配给该线程,从而使得它执...
求java面试题1、面向对象的特征有哪些方面 2、String是最基本的数据类型吗? 3、int 和 Integer 有什么区别 4、String 和StringBuffer的区别 5、运行时异常与一般异常有何异同? 6、说出Ser...
java面试题字符串反转 public String reset(String message) { StringBuffer buffer=new StringBuffer(); for (int i = message.length()-1; i >=0 ; i--) { buffer.append(message.s...
多线程面试题没有思路。还请达人指点这样吧,我是根据前面同学的思路以生产者-消费者方式完成的一个java小demo。第一个类:共享值类。public class ShareValue { private int count; public ShareValue(int count)...
Java线程面试有哪些问题我就抛砖引玉的提出两个问题,让我们去思考一下。 1)现在有T 1、T 2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段...
Java面试题java面试题库v1 0ios版:这么考虑100!=(1*2*3*...*10)*(11*12*...*20)...(91*92*...100) A B ....... J 我们只观察第一部分,就是A部分,10!里只有2*5和1*10会出现末尾是0,那就是说...