天天看点

同程艺龙2020秋招笔试--Binrry(冰蕊)

有判断题、单选题、双选题,题目我考完就忘了。。。。。。

就记得一道编程题,如下:

Java多线程

时间限制:C/C++语言 1000MS;其他语言 3000MS

内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

设计三个线程,三个线程并行执行,要求分别在控制台输入数据后面拼接"_A","_B","_C",并且需要保证线程1,线程2,线程3按顺序执行,即线程1执行完成后,再执行线程2,线程2执行完成后再执行线程3

  1. 线程运行逻辑:在输入参数中拼接字符串,1号线程拼接"_A",2号线程拼> 接"_B",3号线程拼接"_C"
  2. 程序运行时需要同时启动三个线程
  3. 线程运行时,需要按照指定顺序运行,1号线程(执行完成)->2号线程(执行完成)->3号线(执行完成)

输入

字符串输入

输入使用Scanner cin = new Scanner(System.in)获取输入数据

输出

运算结果输出

程序运行结果使用System.out.println()输出到控制台

样例输入

Hello

样例输出

Hello_A_B_C

参考答案:

import java.util.Scanner;
public class Main
 {
	String s;
	public Main() 
	{
		Scanner cin = new Scanner(System.in);
		s="Hello";//cin.next();
		Thread t1=new Thread(new Runnable(){

			@Override
			public void run() 
			{
				s=s+"_A";
			}
		
		});
		Thread t2=new Thread(new Runnable(){

			@Override
			public void run() 
			{
				s=s+"_B";
			}
			
		});
		Thread t3=new Thread(new Runnable(){

			@Override
			public void run() 
			{
				s=s+"_C";
			}
			
		});
		try {
			t1.start();
			t1.join(0);
			t2.start();
			t2.join();
			t3.start();
			t3.join();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

	public static void main(String[] args) 
	{
		Main m=new Main();
		System.out.println(m.s);
	}

}

           

结束后查阅Java API中join()的解释

同程艺龙2020秋招笔试--Binrry(冰蕊)

中文大意为:

等待这个线程死亡。 调用此方法的行为与调用join(0)完全相同

抛出: InterruptedException -如果有任何线程中断了当前线程。 抛出此异常时,将清除当前线程的中断状态。

这道简单的编程题100%通过了,希望其他题也给力点!期待初面~~