多线程(练习题)

Key Point:

  • 线程的概念
  • 线程的创建
  • 线程的状态转换
  • 线程间数据共享
  • 线程的同步

问题:

  1. 一个单CPU的机器,如何同时执行多个线程?请简述其原理。

    单核CPU在任何时间点上,只能运行一个进程;宏观并行、微观串行。
    操作系统(OS)会为每个线程分配执行时间,多个线程,彼此间完成不同的工作,交替执行。
    
  2. (线程的创建)有以下代码

public class Example implements Runnable{
   
	@Override
	public void run() {
   
		while(true) {
   
	
		}
	}

	public static void main(String[] args) {
   
		Example ex1 = new Example();
		Example ex2 = new Example();
		Example ex3 = new Example();
		ex1.run();
		ex2.run();
		ex3.run();
	}
}

选择正确答案:
A,代码编译失败,因为ex2.run()无法获得执行
B.代码编译成功,存在3个可运行的线程
C.代码编译成功,存在1个可运行的线程

C

  1. (线程的创建)有以下代码
public class Example implements Runnable{
   

	public static void main(String[] args) {
   
		
		Thread t = new Thread(new Example());
		t.start();
	}
	public void run(int limit) {
   
		for(int x = 0 ; x<limit;x++) {
   
			System.out.println(x);
		}
	}
}

选择正确答案:
A.打印输出,从0至limit。
B.无内容输出,因为没有明确调用run()方法。
C.代码编译失败,因为没有正确实现Runnable接口。
D.代码编译失败,如果声明类为抽象类,可使代码编译成功。
E.代码编译失败,如果去掉implements Runnable,可使代码编译成功
C

  1. (sleep方法)有如下代码
public class Example {
   

	public static void main(String[] args) {
   
		Thread.sleep(3000);
		System.out.println("sleep");

	}
}

选中正确答案:
A.编译出错
B.运行时异常
C.正常编译运行,输出sleep
D.正常编译运行,但没有内容输出
A

  1. (线程的创建)创建两个线程,要求如下:

     I.一个线程输出100个1-26,另一个线程输出100个A-Z
     II,一个线程使用继承Thread类的写法,另一个线程使用实现Runnable接口的写法。
    
public class TestThread {
   

	public static void main(String[] args) {
   
		
		MyThread1 t1 = new MyThread1();
		t1.start();

		Thread t2 = new Thread
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值