线程中join和sychronized的区别

   首先,谈下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();
}
}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值