一、选择题(不定项选择题)
1.有三种原因可以导致线程不能运行,它们是▁。A B C
A.等待
B.阻塞
C.休眠
D.挂起及由于I/O操作而阻塞
2.当▁方法终止时,能使线程进入死亡状态。A
A.run
B.setPrority//更改线程优先级
C.yield//暂停当前线程的执行 执行其他线程
D.sleep//线程休眠
3.用▁方法可以改变线程的优先级。B
A.run
B.setPrority
C.yield
D.sleep
4.线程通过▁▁方法可以休眠一段时间,然后恢复运行。D
A.run
B.setPrority
C.yield
D.sleep
5.▁▁方法可以用来停止当前线程的运行。A
A.stop( )
B.sleep( )
C.wait( )
D.suspend( )
二、简述题
1.简述程序、进程和线程之间的关系?什么是多线程程序?
①程序:程序就是一段代码,一组指令的集合,不能单独运行,需要将其加载到内存中,系统为他分配资源后才能执行(运行时就相当于一个进程。静态的实体)
②进程:进程就是系统分配资源调用的一个独立单位。是程序的一次动态执行,从加载到执行到执行完毕是一个完整的过程,并且有自己的生命周期。(动态的实体)
③线程:线程依赖于进程存在,一个线程相当于进程的某个任务。
④多线程程序:一个程序运行时(进程)产生了不止一个线程,执行的路径有多条,就叫多线程
2 .什么是线程调度?Java的线程调度采用什么策略?
①线程调度:对处于可运行状态的多个线程对象进行系统级的协调,防止多个线程争用有限资源而导致系统死机或者崩溃
②java的线程调度采用的策略: 抢占式调度
java 的调度策略是基于线程优先级的抢先式调度。意思就是,谁的优先级高那我就先给谁使用系统资源。
3 . 如何在Java程序中实现多线程?
Java中实现多线程有两种方式,
①定义一个类继承自Thread类,重写run方法,然后创建这个类的对象,然后通过对象调用start方法启动线程。
②定义一个类实现Runnable接口,重写run方法,然后创建一个这个类的子类对象,然后建Thread类的对象,将子类对象作为参数进行传递,然后通过start方法启动线程。
三、编程题
1.实现懒汉式单例设计模式的安全问题
2.设计一个程序,可以在看电影的同时打游戏,一个线程负责电影,一个线程负责游戏