线程与多线程
1. Java中一次JVM启动,开启一个进程,进程享有全部资源
2. 一个进程中包含多个线程,线程之间独立使用资源
3. 线程属于宏观并行,微观串行,因为一个CPU
4. 进程如果消失,那么所有的线程都会消失
5.线程资源,由JVM分配的CPU时间片,规定一个线程可以占用的时间,时间到,就要让出当前线程
Java实现多线程的方法
一、
- 编写一个普通类继承Thread类,覆盖run()方法
- 生成Thread对象,调用start()方法,执行任务
二、
- 编写一个普通类,实现Runnable接口,覆盖run()方法
- 生成线程对象,多态引用到Thread,调用start()方法,执行任务
以上两个方法为常规方案,每次执行线程任务,都会有创建线程和销毁线程的操作,这个两个操作会耗费JVM的资源。
因此引入线程池概念,随用随取,保持线程存活
三、线程池
- 起始类Executors,创建线程池,并定义有几个存活线程
- 使用Runnable方法,生成实例
- 在线程池中,获取可用线程连接,执行任务
- 完毕后,关闭线程连接,归还线程到线程池