public class MutiSyn {
public synchronized void method01(){
System.out.println("1");
method02();
}
public synchronized void method02(){
System.out.println("2");
method03();
}
public synchronized void method03(){
System.out.println("3");
}
public static void main(String[] args) {
final MutiSyn muti = new MutiSyn();
Thread t = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
muti.method01();//公用一个对象锁,但是如果synchronized方法穿起来 是能正常执行的
}
});
t.start();
}
}
package com.shi.current01;
public class SynException {
private int i = 0;
public synchronized void method(){
while(true){
try{
i ++;
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName() + " i:" + i);
if(i == 10){
Integer.parseInt("aq");
}
}catch(Exception e){//如果想停止执行InterruptedException或runtimeException打断
e.printStackTrace();
System.out.println("error i:" + i);
}
}
}
public static void main(String[] args) {
final SynException se = new SynException();
Thread t = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
se.method();
}
});
t.start();
}
}
线程中碰到异常会继续执行.