线程的控制(yield,sleep,wait,)

Yield()返回值Boolean。如果在消息队列中提取到了消息,那么函数返回TRUE,否则返回FALSE。用法正常情况下,PowerBuilder应用程序在执行一段代码(比如函数或事件处理程序)的过程中不响应用户的操作。对耗时短暂的代码段来说,这种处理方式没有什么不妥的地方,但是,如果某个代码段的执行耗时较长,应用程序又希望为用户提供更多的控制权,那么需要在这段代码中插入Yield()函数,让用户能够进行其它操作,特别在循环执行的代码中更应该如此。应用程序执行Yield()函数后,如果发现消息队列中存在消息,它将允许对象处理这些消息,处理之后,继续Yield()函数后面代码的执行。因此,代码中插入Yield()函数将降低应用程序的运行效率。

sleep方法的作用是让当前的线程处于休眠状态,并持续一段时间,该时间的长短由sleep()方法的参数决定。sleep方法结束后,线程进入可运行状态。

当线程需要在synchronized块中等待共享数据状态改变时,调用wait方法,这样该线程等待并暂时释放共享数据对象的锁,其他对象可以获得该对象的锁,并进入synchronized块对共享数据进行操作,而此线程则放入wait pool中,转入阻塞状态,当其他线程对共享数据操作完后,只要调用notify()方法就可以通知正在等待的线程重新站有锁,并运行。

发布了34 篇原创文章 · 获赞 6 · 访问量 4785

猜你喜欢

转载自blog.csdn.net/qq_42712280/article/details/86912197