1、线程
为进程中执行的程序片段。
一个线程由线程ID,当前指令针,寄存器和堆栈组成,另外线程是进程的实体,是被系统独立调试的分派的基本单元。
线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
2、线程的状态(线程的生命周期)
(1) 创建 : 创建线程也就是new线程;
(2)就绪:调用了start()方法,等待cpu调度;
(3)运行:执行了run()方法;
(4) 阻塞:也就当前线程处于是停止状态,cpu调用其他线程执行。
(5) 消亡:线程销毁。在线程里面的代码执行完毕后,线程自动销毁。
1) 得到当前线程名称:Thread.currentThread().getName()
(2) 取得当前线程对象:currentThread();
(3) 线程是否执行:isAlive()
(4) 线程的强行运行:join();
(5) 线程休眠:sleep();
3、创建线程池的步骤
- 调用Executors类的静态方法创建一个ExecutorService对象,得到一个线程池。
- 创建Runnbaler的实现类
- 通过submit()方法向线程池提交runnbale线程
- 通过shutdown()方法关闭线程池
线程池:ExecutorService ,ThreadPoolExecutor
线程:thread,runnable,callable
handlerthread,intentservice
进程:
区别:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.