标签: wait

Java - 等待并通知所有

在没有等待的对象上调用notifyAll方法时会发生什么?应该有异常还是正常情况?

java wait

5
推荐指数
2
解决办法
3141
查看次数

如何使C程序等待(在Linux上)?

如何使C程序等待(在Linux上)?(我需要使用MPI等待 - 我需要C代码)

c linux mpi wait

5
推荐指数
2
解决办法
5万
查看次数

等待事件处理

我有一个函数,我们称之为Func1和it containsFunc2&事件处理程序.

现在我想要实现的是not let函数(Func1)返回值,直到Func2触发并处理事件.

基本上Func1将字符串作为返回值,并在事件处理程序中设置字符串值.所以我需要等待处理事件然后返回值.

代码示例

    public static string Fun1 ()
    {
        string stringToReturn = String.Empty;
        Func2(); //Func2 will after few sec fire event bellow 

        example.MyEvent += (object sender, WebBrowserDocumentCompletedEventArgs e) =>
                               {
                                   stringToReturn = "example"; //this wont be hardcoded
                               };

        //wait for event to be handled and then return value
        return stringToReturn;
    }
Run Code Online (Sandbox Code Playgroud)

c# events wait

5
推荐指数
1
解决办法
5841
查看次数

在wait()之前调用Java notify()

是不是可能在一个线程中的wait()之前调用另一个线程中的notify()?它发生在我身上.

客户端从目标请求值并等待结果变量RV.如果目标是客户端本身,我使用正确的结果更新RV并在另一个线程中调用RV上的notify().

class EMU {

  ResultVar RV;
  Address my_address;

  ResultVar findValue(String key) {
    String tgt = findTarget(key);
    sendRequest(tgt, key);
    synchronized(RV) {
      RV.wait();
    }

    return RV;
  }

  Runnable Server = new Runnable() {
    public void run() {
      //code to receive connections. Assume object of type Request is read from the stream.
      Request r = (Request) ois.readObject();
      if(r.requesterAddr.compareTo(my_address) == 0) {
        String val = findVal(key);
        RV.putVal(val);
        synchronized(RV){
          RV.notify();
        }
      }
    }
  };
}
Run Code Online (Sandbox Code Playgroud)

问题是在请求者自己完成所有"网络"(上例中的sendReqest)之前,结果会在结果变量中更新.当请求者线程现在调用wait()时,程序不会继续,因为已经调用了notify.

我们怎样才能防止它呢?

java multithreading notify wait

5
推荐指数
2
解决办法
7848
查看次数

fork(),exec和waitpid()

我读了前面的问题fork和exec之间的差异,但它让我有些疑惑.

在使用fork()并且你对孩子调用exec时,创建的新进程exec仍然是孩子吗?

杀死父进程是否也杀死了孩子?

顶部答案中显示的绘图/示例中,他调用wait/,waitpid因为如果父进程首先终止,子进程终止,然后您获得该ls命令的部分输出或没有输出,这是正确的吗?

c unix fork process wait

5
推荐指数
1
解决办法
3414
查看次数

让PHP等到函数完成?

有没有办法让PHP等到函数返回后再继续?

这是我的代码:

<?php

    set_time_limit(0);

    function waitforchange($nof) {
        $lfilemod=filemtime($nof);
        while(filemtime($nof) == $lfilemod) {
            clearstatcache();
            usleep(10000);
        }
    }

    waitforchange('./blahblah.txt')
    sleep(5);
    echo 'done';

?>
Run Code Online (Sandbox Code Playgroud)

它应该等到blahblah.txt更改,然后等待另外五秒,然后打印出"完成",然而,无论文件是否实际更改,它都会在五秒后打印出"完成".

php wait thread-sleep

5
推荐指数
1
解决办法
4万
查看次数

停止和等待算法的Python实现

我正在尝试实现一个停止和等待算法.我在发件人实施超时时遇到问题.在等待来自接收方的ACK时,我正在使用recvfrom()函数.然而,这使程序空闲,我无法按照超时重新传输.

这是我的代码:

import socket

import time

mysocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)


while True:


   ACK= " "

    userIn=raw_input()
    if not userIn : break
    mysocket.sendto(userIn, ('127.0.0.01', 88))     
    ACK, address = mysocket.recvfrom(1024)    #the prog. is idle waiting for ACK
    future=time.time()+0.5   
    while True:
            if time.time() > future:
                    mysocket.sendto(userIn, ('127.0.0.01', 88))
                    future=time.time()+0.5
            if (ACK!=" "):
                    print ACK
                    break 
mysocket.close()
Run Code Online (Sandbox Code Playgroud)

python implementation for-loop wait

5
推荐指数
1
解决办法
5908
查看次数

在webjob中使用等待异步调用时的WindowsAzure.Storage.StorageException

我在azure网站上使用webjob来处理占用大量内存的繁重进程.该进程后端执行大量Web调用,因此将其设计为异步.我希望webjob只处理每个实例的一个请求.我已经设置了Queues.BatchSize = 1选项来禁用webjob中的并行.但是,当我使用await来调用异步方法时,下一条消息仍然会立即从队列中获取,因为await并没有真正阻止当前线程,这对UI应用程序很有用,但不适用于我的情况.

所以我尝试使用wait来阻止当前线程,直到所有后端进程完成.但是,在该过程完成后抛出异常.似乎webjob在等待后删除队列存在问题.

我附上了简化的测试代码和例外.有任何想法吗?

非常感谢您的帮助!

名称空间ProcessWebJob {

public class Functions
{
    public static void ProcessQueueMessage([QueueTrigger("testQueue")] string message, TextWriter log)
    {
        try
        {
            testAsync ts = new testAsync();
            var task = Task.Run(async () => { await ts.test(); });
            task.Wait();
        }catch(Exception e){
           Trace.TraceInformation("error on processing the queue message" + e.InnerException);
        } 

    }
}

public class testAsync {
   public async Task<int> test()  
   {
        await Task.Delay(10000); //10 seconds delay
        return 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

}

[10/07/2015 17:57:14> 278796:错误]未处理的异常:Microsoft.WindowsAzure.Storage.StorageException:远程服务器返回错误:(404)Not Found.---> System.Net.WebException:远程服务器返回错误:(404)Not Found.[10/07/2015 17:57:14> 278796:ERR]在Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException [T](HttpStatusCode …

queue asynchronous azure wait

5
推荐指数
0
解决办法
445
查看次数

为什么用waitpid()替换了wait4()

我正在查看系统调用的文档,wait4()并在其手册页中编写了该文档

这些功能已过时;在新程序中使用waitpid(2)或使用waitid(2)

因此,我浏览了的文档,waitpid()发现两者之间存在差异。

waitpid()与的功能相同wait4(),但wait4()根据手册页,

另外,在指向的结构中返回有关子级的资源使用信息rusage

这两个系统调用定义如下

pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage);

pid_t waitpid(pid_t pid, int *status, int options);
Run Code Online (Sandbox Code Playgroud)

现在,我还阅读了另一个系统调用,它完成了获取rusage孩子的任务,即getrusage()

因此,我可以理解,wait4()通过结合使用waitpid()和和,可以做同样的事情getrusage()


但是,我不了解的是,总是有很强的理由使系统调用过时。但是在这种情况下,感觉功能已被拆分。

  • 如果我想使用的组合waitpid()getrusage(),我要检查返回值的两倍,这是不是对的情况 wait4()
  • 另外,可以使用wait4()来获得rusage一个特定的孩子,但是waitpid()可以将rusage其所有孩子在一起(如果与一起使用RUSAGE_CHILDREN)。如果子进程多于少数,这听起来像是额外的开销。

为什么wait4()过时了?看来这使事情变得更加艰难。

c linux system-calls wait waitpid

5
推荐指数
1
解决办法
835
查看次数

如何在XCTest中等待T秒而没有超时错误?

我想将测试进度延迟T秒,而不会产生超时。

首先,我尝试了显而易见的方法:

sleep(5)
XCTAssert(<test if state is correct after this delay>)
Run Code Online (Sandbox Code Playgroud)

但这失败了。

然后我尝试了:

let promise = expectation(description: "Just wait 5 seconds")
waitForExpectations(timeout: 5) { (error) in
    promise.fulfill()

    XCTAssert(<test if state is correct after this delay>)
}
Run Code Online (Sandbox Code Playgroud)

XCTAssert()现在成功了。但是waitForExpectations()由于超时而失败。

这是根据XCTest等待函数的文档说的:

超时始终被视为测试失败。

我有什么选择?

timeout wait ios xctest swift

5
推荐指数
3
解决办法
2298
查看次数