多线程总结(一)

多线程基础

为什么要使用多线程程,提高资源利用率,让原来串行的代码并行执行提高效率.

使用多线程

继承Thread类或者实现Runnable接口

线程安全:简单理解多线程情况下无论怎样执行和单线程执行结果是一样的,就是线程安全的,如果数据变的不一样了就不是线程安全的了

常用方法

currentThread() //当前正在执行的线程
isAlive() //判断当前线程是否处于活动状态  已经启动尚未停止
sleep() // 让正在执行的线程休眠,可以指定休眠的时间
getId() //获取线程唯一标识
//----------停止线程-----------------------------
interrupt()  //给当前线程打一个中断标记
this.interrupted() //测试当前线程是否已经中断  会清除线程中断状态
this.isInterrupted() //测试线程是否已经中断  不会清除线程状态
//sleep状态打断调用interrupt 会抛出异常,并清除停止状态   个人理解只有alive状态才可以打断
stop() //暴力停止,数据可能被破坏
return;interrupt() //一起使用可以停止线程
//推荐用法 抛异常方式可以使线程停止事件传播
suspend() //暂停线程
resume() //恢复线程 使用不当会导致线程独占;也可能导致数据不同步问题
yeild() //放弃当前CPU资源,但是下次会不会被调度得看OS调度了
setPriority() //设置优先级 谁创建的线程,线程的优先级就跟谁一样  优先级高调度概率高

你可能感兴趣的:(多线程)