- 3
- 0
- 约1.25万字
- 约 35页
- 2026-06-27 发布于河南
- 举报
Java软件工程师并发编程笔试题及答案
1.请简述进程与线程的区别,以及Java中实现线程的几种常用方式?
答案:
进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位,二者核心区别如下:
(1)资源归属:进程拥有独立的内存地址空间和系统资源(文件句柄、网络端口等),同一进程下的所有线程共享进程的资源,仅拥有独立的栈空间、程序计数器等私有数据。
(2)开销:进程的创建、销毁、上下文切换开销远高于线程,进程切换需要刷新整个地址空间的缓存,线程切换仅需保存寄存器和栈数据。
(3)通信方式:进程间通信需要借助管道、消息队列、共享内存、套接字等机制,线程间可以直接通过共享进程内的全局变量实现通信,仅需解决同步互斥问题。
(4)健壮性:进程间相互隔离,单个进程崩溃不会影响其他进程,同一进程下的线程出现未捕获异常会导致整个进程退出。
Java中实现线程的常用方式有4种:
(1)继承Thread类:重写run()方法,调用start()启动线程,缺点是Java单继承特性限制了类的扩展性。
(2)实现Runnable接口:重写run()方法,将实现类实例传入Thread构造函数启动,避免了单继承限制,无返回值。
(3)实现CallableV接口:重写call()方法,配合FutureTask封装后传入Thread启动,可以获取返回值,支持抛出业务异常。
(4)通过线程池创建:生产环境首选
原创力文档

文档评论(0)