Java多线程01
共享数据 多个线程访问同一个变量产生非线程安全问题例如:两个线程同时访问同一个变量
所以 在run方法前加入synchronized关键字,使多个线程执行run方法时 以排队的形式处理。当一个线程调用run方法前,先判断run方法是否被上锁,是则等待run方法调用结束后在调用。
synchronized可以在任意对象及方法加锁,加锁的这段代码称为互斥区 或 临界区
Thread.currentThread().getName() 返回的是对当前正在执行的线程对象的引用
This.getName()当前调用它所在函数所属的对象的引用
Thread 类
Runnable接口
currentThread()
isAlive()
sleep()
Interrupt()
Interrupted() 是否中断 且重置状态为FALSE
isInterrupted();
getId()
线程在sleep状态下被中断,会进入catch语句 ,并且重置线程状态为FALSE
线程先中断后沉睡,则进入catch ,不会沉睡
Stop停止线程
Stop()方法与java.lang.ThreadDeath异常配合
使用stop方法释放锁将会造成数据不一致的结果
Suspend暂停 挂起resume继续,重新开始
Suspend暂停run方法里的方法,则主函数或者其他地方无法使用run里的方法,因为同步锁未被释放~!~!
Yield方法的作用是当前线程放弃当前的CPU资源,让给其他任务
不错哟,排版待加强{:10_257:} 零度非安全 发表于 2017-6-9 22:38
不错哟,排版待加强
好~我会注意的{:10_254:} 不错不错~ 小甲鱼 发表于 2017-6-10 23:47
不错不错~
受到巨大的鼓励~哈哈,继续学习!{:10_297:}
页:
[1]