java 线程锁详细介绍及实例代码
java线程锁
在Java线程中运用synchronized关键字来达到同步的
synchronized可以锁方法,锁类,锁对象,锁代码块
方法锁
//加在方法上面的同步锁是this
publicsynchronizedvoidprint(){
System.out.println("同步方法");
try{
Thread.sleep(3000);
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
类锁
publicsynchronizedvoidprint(Stringmsg){
//类锁
synchronized(MyThread.class){
System.out.println(msg);
try{
Thread.sleep(3000);
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
对象锁
以卖火车票为例
publicclassWindowextendsThread{
publicWindow(Stringname){
super(name);
}
staticinttick=100;
staticStringobj=newString();
@Override
publicvoidrun(){
//开始卖票
while(tick>0){
//同步代码块
//一把锁钥匙
//所有的线程必须在这里排队
synchronized(obj){
if(tick>0){
System.out.println(getName()+"卖出了第【"+tick+"】张票");//失去了cpu资源
tick--;
}
}
try{
Thread.sleep(100);
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志