面试题多线程基础

一、选择题(不定项选择题)

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.设计一个程序,可以在看电影的同时打游戏,一个线程负责电影,一个线程负责游戏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值