0
点赞
收藏
分享

微信扫一扫

多线程相关面试题:并行和并发的区别、线程和进程、线程的创建方式、运行状态


1,并行和并发有什么区别

并行:多个处理器或多核处理器同时处理多个任务。

并发:多个任务在同一个CPU核上,按细分的时间片轮流(交替)执行,从逻辑上来看并发的任务是同时执行;

简而言之:

并发=两个队列和一台处理器

并发=两个队列和两个处理器

2、线程和进程的区别

一个程序下至少有一个进程,

一个进程下至少有一个线程,一个进程下也可以有多个线程来增加程序的执行速度。

3.守护线程是什么?

守护线程是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。在Java中垃圾回收线程就是特殊的守护线程。

4.创建线程有哪几种方式?

创建线程有三种方式:

●继承Thread重写run方法;

●实现Runnable接口;

●实现Callable接口。

5.线程有哪些状态?线程的状态:

NEW尚未启动

RUNNABLE正在执行中

BLOCKED阻塞的(被同步锁或者I0锁阻塞)

WAITING永久等待状态

TIMED_ WAITING 等待指定的时间重新被唤醒的状态

6,sleep()和 wait()的区别

类的不同,sleep()来自Thred ,wait()来着Object,

释放锁,sleep()不释放锁,而wait()释放锁

用法不同,sleep()到时间会自动醒来,自动回复线程,而wait()需要用notify()/ notifyAll()来唤醒线程。

7,线程的run()和start()方法有什么区别

start()方法用于启动线程,

run()方法用于执行线程的运行时代码,

run()可以重复使用,而start()只能调用一次。



举报

相关推荐

0 条评论