请问Java中线程的yield()方法,sleep()方法,wait()方法,start()方法的作用和区别?下面我对yield()方法理解的疑惑:yield()方法暂停(是暂停还是停止?)当前正在执行的线程,并且开始执行其它同等优先级(一定非得是同等优先级吗?)的线程执行,执行完以后(此时是不是又开始执行原来“暂停”的线程呢?还是原来被“暂停”的线程永远也得不到执行了?)。
查了很多资料,但是各方说的都不一致,到底是怎么执行的?请帮忙,谢谢
查了很多资料,但是各方说的都不一致,到底是怎么执行的?请帮忙,谢谢
yield应该是等待,如果有优先级高的,就等优先级高的执行完再执行
sleep(): 休眠 有时限
wait(): 等待 释放锁 可被notify
start(): 启动线程 运行run方法
wait(): 当使用同步(互斥锁时),a()方法使用wait()阻塞等待,把线程权限交出给b()方法,直到b()方法完成后,唤醒a()方法。
start(): 启动线程 a.atart();调用a类的run();