Performance beim pollen?



  • ich muss mehere netzwerkverbindungen abfragen und zusaetzlich auf nicht socket-basierte ereignisse reagieren (die abgefragt werden muessen). daher kann ich nicht select() verwenden.
    deshalb dachte ich daran die entpsrechenden recv() bzw. read() funktion nicht blockieren zu lassen, und sie stattdessen in einer while schleife abzufragen:

    //pseuducode, fd1..fdx steht nicht zwingend fuer einen filedescriptor.
    while(!myexit)
    {
      if (myread(fd1) >0)
        handlemyread(1);
    
      if (myread(fd2) >0)
        handlemyread(2);
    
      if (myread(fd3) >0)
        handlemyread(3);
    
      if (myrecv(fd1) >0)
        handlemyrecv(1)
    
      if (myrecv(fd2) >0)
        handlemyrevc(2);
    
      if (myrecv(fd3) >0)
        handlemyrecv(3);
    }
    

    nun meine frage(n):
    "verbrate" ich so unnoetig rechenzeit?
    wird durch die nahezu endlos whileschleife eine hohe CPU last erzeugt? (im hinblick auf ander prozesse)


Anmelden zum Antworten