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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con un ejercicio
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con un ejercicio  (Leído 2,009 veces)
lJvRl

Desconectado Desconectado

Mensajes: 7


Ver Perfil
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;
}


En línea

85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: Duda con un ejercicio
« Respuesta #1 en: 20 Abril 2013, 21:54 pm »

2 consejos, el código va dentro de las etiquetas de código c++, se encuentran entre las opciones del armado del post.

segundo, fijate algún foro orientado a Qt
http://www.zonaqt.com/foro
http://qt-project.org/forums
http://www.lawebdelprogramador.com/foros/QT/index1.html
http://foro.elhacker.net/sugerencias_y_dudas_sobre_el_foro/nuevo_subforo_qt-t279707.0.html (XD)

o sino a esperar que alguien te ayude en este foro XD
salu2


En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Duda con un ejercicio
« Respuesta #2 en: 20 Abril 2013, 22:58 pm »

Si coloreas el código, y das algunas indicaciones sobre lo que tienes que hacer en el ejercicio será mucho más probable que alguien te ayude.

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
lJvRl

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Duda con un ejercicio
« Respuesta #3 en: 21 Abril 2013, 13:29 pm »

Por lo que he podido deducir es un tema tipico de multithreads llamado Producer-Consumer.

Pero viendo el codigo, no veo que este mal implementado. Sin embargo, el enunciado me pide qeu encuentre que es lo q esta mal.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda en ejercicio++
Ejercicios
Lamarkus 1 3,291 Último mensaje 1 Diciembre 2010, 17:31 pm
por [L]ord [R]NA
duda con un ejercicio..
Programación C/C++
fer_fer_73 8 4,055 Último mensaje 4 Febrero 2011, 01:24 am
por negux
Duda ejercicio C
Programación C/C++
cortex123 1 1,986 Último mensaje 13 Junio 2011, 21:09 pm
por El_Java
Duda con ejercicio
Programación C/C++
bigfu 2 1,986 Último mensaje 24 Agosto 2011, 22:43 pm
por bigfu
duda con un ejercicio
Programación C/C++
Freelancer 4 2,476 Último mensaje 10 Septiembre 2011, 04:31 am
por Freelancer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines