1、进程、线程、任务
- 进程
1、是程序的运行实例,例如一个运行的Eclipse就是一个进程。
2、是程序向操作系统申请资源(如内存空间、文件句柄)的基本单位
- 线程
1、是进程中可独立执行的最小单位
2、一个进程可包含多个线程,所有线程共享该进程的资源
- 任务
1、线程要完成的计算就被称为任务
2、Java线程API
start
方法调用结束不意味着相应线程的运行开始,只是启动,运行由线程调度器决定- 两个常用构造器:
Thread()
,Thread(Runnable target)
start
方法只能被调用一次- 线程属性:ID、Name、Daemon(类别)、Priority
1、ID:long类型,唯一性只在Java虚拟机的一次运行有效
2、Name:String类型
3、Daemon:Boolean类型,true表示线程为守护线程,否则为用户线程。
4、Priority:int类型,值为1-10,默认5
- 用户线程会阻止Java虚拟机的正常停止,也就是一个Java虚拟机只有在其所有用户线程都运行结束才能正常停止;守护线程则不会影响Java虚拟机的正常停止
- 若线程A调用线程B的join方法,则A会暂停运行直到B结束运行
3、线程的监视
- 对线程进行监视的主要途径是获取并查看程序的线程转储(Thread Dump)
- 使用JMC监视线程