elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Duda con un ejercicio en: 20 Abril 2013, 13:13 pm
Hola,

tengo que encontrar que es lo que no va bien en este ejercicio pero no hay manera...

Intuyo que es algo de threads pero no domino casi nada el tema...

Si alguien me pudiera echar un cable, almenos para sber por dnd tirar...

Grcias!!!

Os pongo el ejercicio:

¿Que falla en este código? ¿Y por qué?

#include <QtCore>

#include <stdio.h>
#include <stdlib.h>

const int DataSize = 100000;
const int BufferSize = 8192;
char buffer[BufferSize];

QWaitCondition bufferNotEmpty;
QWaitCondition bufferNotFull;
QMutex mutex;
int numUsedBytes = 0;

class Producer : public QThread
{
public:
void run();
};

void Producer::run()
{
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));

for (int i = 0; i < DataSize; ++i) {
mutex.lock();
if (numUsedBytes == BufferSize)
bufferNotFull.wait(&mutex);
mutex.unlock();

buffer[i % BufferSize] = "ACGT"[(int)qrand() % 4];

++numUsedBytes;
bufferNotEmpty.wakeAll();
}
}

class Consumer : public QThread
{
public:
void run();
};

void Consumer::run()
{
for (int i = 0; i < DataSize; ++i) {
mutex.lock();
if (numUsedBytes == 0)
bufferNotEmpty.wait(&mutex);
mutex.unlock();

fprintf(stderr, "%c", buffer[i % BufferSize]);

--numUsedBytes;
bufferNotFull.wakeAll();
}
fprintf(stderr, "\n");
}

int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
Producer producer;
Consumer consumer;
producer.start();
consumer.start();
producer.wait();
consumer.wait();
return 0;
}
2  Programación / Programación C/C++ / Duda sobre progrmacion C++ en: 18 Abril 2013, 13:53 pm
Alguien sabe cuál es la diferencia entre estas tres funciones?
const A * function();
A* const  function();
A const * function();


Gracias por adelantado!!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines