来源:蜘蛛抓取(WebSpider)
时间:2016-07-22 05:41
标签:
fin wait1 怎么关
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&wait to do 和wait doing怎么用_百度知道
wait to do 和wait doing怎么用
wait to do 等待着做某事wait doing是错误用法。wait用法简析:wait to do sth 等待做某事wait for sb/sth 等待某人/物wait for(one's) doing 等待做某事can't wait to do sth 迫不及待某做事例如:He is waiting to be called outside the interview room.——Who are you waiting for?——I am waiting for Jack and his friends.They were waiting for being called in..I can't wait to see you again.
其他类似问题
为您推荐:
提问者采纳
I can'。wait doing?亲;t wait to see what he comes up with nextwait to do 等着做,没有这种用法吧. 我迫不及待想看看他接下来会有什么新花样
英语学习顾问
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁java wait(long timeout, int nanos),后面的nanos有什么用?
今天看Object类代码的时候,发现wait(long timeout, int nanos)方法里面只是对两个参数做了下简单校验,然后调用wait(long timeout),问题是,看里面的代码,只要是nanos & 0,就使timeout+1然后调用wait(long timeout),代码如下:public final void wait(long timeout, int nanos) throws InterruptedException {
if (timeout & 0) {
throw new IllegalArgumentException("timeout value is negative");
if (nanos & 0 || nanos & 999999) {
throw new IllegalArgumentException(
"nanosecond timeout value out of range");
if (nanos & 0) {
timeout++;
wait(timeout);
}那请问nanos有什么用呢?或者说,nanos具体值有什么用?100和10000都没区别吧?
简单说,wait(long timeout, int nanos)方法提供比wait(long timeout)更好的时间控制1ms= ns ,其中wait的timeout都是ms单位This method is similar to the wait method of one argument, but it allows finer control over the amount of time to wait for a notification before giving up. The amount of real time, measured in nanoseconds, is given by: 1000000*timeout+nanos
你的代码是jdk?版本,我的jdk6 有段显示跟你不太一样: if (nanos &= 500000 || (nanos != 0 && timeout == 0)) {
timeout++; } wait(timeout);
已有帐号?
无法登录?
社交帐号登录<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&object.wait(long&timeout)方法需要慎用
object.wait(long timeout)方法需要慎用(zz)- -
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
这篇文章用代码讲解object.wait(long timeout)方法的使用.
还是关于wait()这个方面的话题,Object类除了提供wait()这个方法之外,还提供了另外一方法,那就是wait(long
javadoc上对这个方法的说明是:
Causes current thread to wait until either another thread invokes
the notify() method or the notifyAll() method for this object, or a
specified amount of time has elapsed.
于是我想测试一下如果没有另外的线程来调用notify()或者notifyAll(),
那么wait()方法真的可以在指定的时间内返回么?
试想一下,如果一个线程t1中对一个object.wait(1000), t1进入阻塞并且释放object的monitor,
线程t2获得了object的monitor,
如果t2握住object的monitor超过了1000毫秒,比如5000毫秒,那么t1的wait(1000)方法还可能在系统的时钟经过了1000毫秒之后正常返回吗?如果可以返回,t1必须要获得object的monitor,
而这个时候t2并没有释放object的monitor, 所以t1根本就不能够正常返回,下面的代码可以证实这一点。
public class WaitForSpecifiedTimeTest {
&private Object vitual = new Object();
&public void sleepFor(long mills)
& synchronized(vitual)
&& long now =
System.currentTimeMillis();
&& System.out.println("be going
to sleep");
vitual.wait(mills);
&& } catch (InterruptedException
e.printStackTrace();
&& System.out.println("I've slept
for "+(System.currentTimeMillis()-now)+" mills!");
&public void startAnotherThread()
& Thread t = new Thread(){
&& public void run()
&&&&&&&&&&&&
sleep(300);//睡一下的作用是确保让main线程先获得vitual的monitor.
} catch (InterruptedException e1) {
&&&&&&&&&&&&
e1.printStackTrace();
synchronized(vitual)
&&&&&&&&&&&&
long now = System.currentTimeMillis();
&&&&&&&&&&&&
System.out.println("I get the monitor");
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
Thread.sleep(5000);
&&&&&&&&&&&&&&&&&
//睡一下的目的是推迟5秒释放vitual的锁,5秒的时间已经超过了wait()的等待时间,这样可以看看程序有什么异常行为。
&&&&&&&&&&&&
} catch (InterruptedException e) {
&&&&&&&&&&&&&&&&&
e.printStackTrace();
&&&&&&&&&&&
&&&&&&&&&&&
System.out.println("I hold the monitor for
"+(System.currentTimeMillis()-now)+" mills");
& t.start();
&public static void main(String []args)
& WaitForSpecifiedTimeTest test = new
WaitForSpecifiedTimeTest();
& test.startAnotherThread();
& test.sleepFor(3000);
我的机器的运行结果是:
be going to sleep
I get the monitor
I hold the monitor for 4997 mills
I've slept for 5308 mills!
也就是说vitual.wait(3000), 它一直睡了5308毫秒才返回。
结论是:这个方法有比较大的潜在的危险,使用的时候一定要慎用,最好不要依赖它。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。