**Join()方法:**使main主线程等待调用join()方法的线程运行完,再继续运行main的主线程。
线程之间可共享属性与对象,但会若不对线程加以管理,两者对共享数据的调用会混乱。
**同步:**通过对一个类的多个方法添加关键字synchronized,可以声明同步方法。同步方法可以避免一个对象的多个方法被不同的线程同步执行,从而回避线程干扰和内存不一致性错误。
//当有多个线程调用同一个类中的不同方法时,同步方法可以使单位时间只执行一个方法。
同步语句通过锁机制对一组语句进行控制,保证这些语句不会被多个线程执行,例如:
public void aMethod(){
synchronized(this){
statement1;
statement2;
}
}
synchronized标记了其后大括号范围内的语句属于一个完整的代码块,它们不能被不同的线程分开来执行。