线程API:
线程:一个顺序的单一的程序执行流程就是一个线程~代码一句一句先后顺序执行
多线程(并发):多个单一的顺序执行的流程并发运行~感官上就是肉眼可以造成同时运行的效果
并发---其实就是多个线程走走停停 由线程调度将cpu的运行时间划分若干时间片段 只能说是尽可能均分给每个线程(线程优先级默认为5 线程名.setPriority 去设置)
用途:1)一个线程可以运行 但多个线程可以更快是可以用多线程
2)多个代码片段执行顺序有冲突 希望他们各干各的应放在不同线程“同时”运行
创建方式:1)继承Thread并重写run方法
启动调用start方法(优点:结构简单 便于匿名内部类形式建立)(缺点:1 直接继承了线程 就不能继承其他类 2:定义线程同时重写了run方法 线程和线程任务绑在一起 不利于线程重用)
2)实现Runnable接口单独定义线程任务(做法:先实例化任务 再创建线程并指派任务 最后启动)
线程sleep:使线程进入睡眠堵塞(毫秒)时间一过回到RUNNABLE状态等待分配到的时间片并发
当线程调用sleep的方法处于睡眠堵塞过程中 该线程的interrupt()被调用 会抛出异常打断睡眠堵塞 即终止睡眠堵塞
守护线程:当普通线程都结束 进程就会结束 就会杀掉所有的守护线程
要设置守护线程必须在线程启动前----setDaemon(true)
在jsd2207-se-teacher第5天