首先,谈下join和sychronized的区别吧,在线程中join()方法主要是为了上个线程执行完毕后,再执行下一个线程,从而达到同步的作用,当然sychronized也是同步的,但是它们的不同之处就是,join()方法在内部使用的是wait()方法进行等待,而sychronized关键字使用的是"对象监视器"原理作为同步。
join()方法实现同步的具体代码:
public class joinTest {
public static void main(String[] args) {
try {
MyThread myThread = new MyThread();
myThread.start();//启动
myThread.join();//join()具有使线程排队的作用
System.out.println("myThread对象执行完毕后再执行!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
class MyThread extends Thread{
public void run(){
try {
int value= (int)(Math.random() *10000);
System.out.println(value);
Thread.sleep(value);//线程休眠的时间
} catch (Exception e) {
e.printStackTrace();
}
}
}