
正文
java等待唤醒代码,java进程等待
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java里如何暂停一个线程,达到一定条件后又唤醒线程?
1、可以用以下几种方法:interrupt():中断线程 stop():强迫线程停止执行。用 Thread.stop 来终止线程将释放它已经锁定的所有监视器(作为沿堆栈向上传播的未检查 ThreadDeath 异常的一个自然后果)。
2、wait和notify来代替,但这两个方法必须用在synchronize里面。所以如果是一般场合可用循环变量来控制线程,while(flag){ dosomething()..Thread.sleep(100);} 设置flag为false则循环结束,这个线程也结束。
3、以下是详细的唤醒方法: sleep() 方法 sleep(毫秒),指定以毫秒为单位的时间,使线程在该时间内进入线程阻塞状态,期间得不到cpu的时间片,等到时间过去了,线程重新进入可执行状态。
相关问答
Q1: java的等待唤醒机制必须要让线程等待吗
挂起实际上是让线程进入“非可执行”状态下,在这个状态下CPU不会分给线程时间片,进入这个状态可以用来暂停一个线程的运行;在线程挂起后,可以通过重新唤醒线程来使之恢复运行。
sleep()跟上面这三个不一样,是Thread中的方法,不需要等待资源被释放,sleep有一个时间传参,想让线程等待多会儿就等待多会儿,不需要其他线程唤醒。
此时可以让其他线程可以对用以对象调用synchronized方法。直到调用 notify或者notifyAll后 wait的线程才有可能执行。所以一般wait 和 notify是成对出现的。有点复杂,去看看线程同步有关的东西吧。
让我们先通过一个示例解析 wait()方法可以使线程进入等待状态,而notify()可以使等待的状态唤醒。这样的同步机制十分适合生产者、消费者模式:消费者消费某个资源,而生产者生产该资源。
Q2: java代码怎么控制android休眠和唤醒?
(4)使用suspend挂起线程后,可以通过resume方法唤醒线程。
唤醒源 设备休眠后,通过触发唤醒源使设备恢复正常工作模式。设备唤醒源有多种,对于Android设备常见的就有PowerKey、来电唤醒、Alarm唤醒等。唤醒源的实现处于内核空间,本文重点讨论下PowerKey作为唤醒源的具体实现。
如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞,可以中断线程,并且通过抛出InterruptedException来唤醒它;如果线程遇到了IO阻塞,无能为力,因为IO是操作系统实现的,Java代码并没有办法直接接触到操作系统。
当然,对于一般的应用程序来说,sleep()方法对时间控制的精度足够了。
先看java 文档怎么说:wait导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。当前的线程必须拥有此对象监视器。
Q3: java多线程执行一个同步代码块,如果得到锁的线程挂掉,如何唤醒别的线程...
sleep() 方法:sleep(…毫秒),指定以毫秒为单位的时间,使线程在该时间内进入线程阻塞状态,期间得不到cpu的时间片,等到时间过去了,线程重新进入可执行状态。(暂停线程,不会释放锁)suspend() 和 resume() 方法:。
。同步代码块:synchronized(同一个数据){} 同一个数据:就是N条线程同时访问一个数据。2。同步方法:public synchronized 数据返回类型 方法名(){} 就 是使用 synchronized 来修饰某个方法,则该方法称为同步方法。
(3)通过调用wait()方法使线程挂起,直到线程得到了notify()和notifyAll()消息,线程才会进入“可执行”状态。(4)使用suspend挂起线程后,可以通过resume方法唤醒线程。
关于java等待唤醒代码和java进程等待的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







