effizientes multithreading



  • Hi,

    ich moechte folgendes beispiel programmieren:
    http://www.careercup.com/question?id=278718

    single threading laueft soweit.
    wie kann ich nun das multithreading effizient realisieren? ein thread pool implementieren?

    -bjarne



  • die frage ist:
    - wie viele bytes soll jeder thread lesen?
    - wie viele threads soll ich erzeugen? (vermutlich mit einem benchmark zu bestimmen...)

    std::vector<std::vector<BYTE>> stream_buffer_vec;
    unsigned int total_bytes;
    
    do {
      std::cin.read(reinterpret_cast<char*>(&stream_buffer_vec[thread_id][0]), stream_buffer_size);
      total_read = std::cin.gcount();
    
      // create crypto worker thread: pass the following to the worker thread:
      // - stream_buffer_vec[thread_id]
      // - copy of the current key
    
      // rotate key
    } while (total_read > 0);
    

    // if worker thread is finished call:
    // std::copy(stream_buffer.begin(), stream_buffer.end(), std::ostream_iterator<char>(std::cout));

    --bjarne



  • hi, kann jemand feedback geben?



  • Was willst du hören? Probiere es aus.
    Sinnvoll ist das sowieso nicht, selbst eine SSD wird hier der Flaschenhals sein, nicht die CPU.


Anmelden zum Antworten