优势
- 多个线程可以共享内存,而进程间不能共享内存,进程的创建需要重新分配系统资源,但创建线程的代价则小得多
实际应用
- 一个浏览器能同时下载多个图片
- 一个Web服务器能同时响应多个用户请求
- Java虚拟机本身就在后台提供了一个超级线程来进行垃圾回收
- 图形用户界面(GUI)也需要启动一个单独的线程来从主机环境中收集用户界面事件
- and so on
使用继承Thread和实现Runnable接口两种方式创建线程的对比
- 实现Runnable接口方式:
- 线程类还可继承其他类
- 需使用 Thread. currentThread () 访问当前线程
- 避免了单继承的局限性、多个线程可以共享一个target对象,非常适合多线程处理同一份资源的情形。
- 继承Thread的方式:
- 不能再继承其他父类
- 可直接使用 this 访问当前线程