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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Threads y travesuras en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Threads y travesuras en C++  (Leído 3,118 veces)
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Threads y travesuras en C++
« en: 26 Septiembre 2015, 20:31 pm »

Hola a todos,

hasta ahora cuando he trabajado con subprocesos he trabajado con async(), pero es lo mismo que un thread o mejor?. Además no son autenticos thread ¿no?.

Lo digo porque cuando programaba en C# y creaba un nuevo thread en el administrador de tareas salían 2 ejecutables con el nombre del programa el normal y el del thread, sin embargo en cpp ¿como se crea un thread así?.

También el mutex me vuelve un poco loco, da muchos errores, la verdad me esta costando trabajar con procesos bastante XD. ¿Dónde lo declaro para que haya uno único para todo el programa.

Simplemente lo necesito para hacer el reescaneo de hosts ya que allí actualizo la lista de victimas, meto mutex actualizo lista y unlock(), y en todas las partes del programa que se accede a la lista lo mismo lock() y unlock() al salir, es horrible.

Saludos.


En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Threads y travesuras en C++
« Respuesta #1 en: 26 Septiembre 2015, 20:50 pm »

Citar
en todas las partes del programa que se accede a la lista lo mismo

Plantéate englobar todas las partes que hagan lo mismo en un set de funciones o en una clase.


En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Threads y travesuras en C++
« Respuesta #2 en: 1 Octubre 2015, 09:55 am »

Si eso hago todas las funciones y subthreads que usan la lista de usuarios que es comun a todas ellas las corro en una función, donde la lista de usuarios es un atributo.

Cuando alguien la modifica antes de eso llamo al mutex, pero es un lío horrible, a veces va mejor cuando no pongo mutex XD.

Busqué acerca de los auténticos threads y los encontré:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682453(v=vs.85).aspx

Pero no es exactamente lo que pensaba, ¿como puedo ejecutar una función de mi programa en otro proceso aparte?, ¿algúen ejemplo?.

Gracias, saludos.
En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Threads y travesuras en C++
« Respuesta #3 en: 1 Octubre 2015, 15:57 pm »

Busqué acerca de los auténticos threads y los encontré

Ya que C++11 tiene threads, está bien que los uses.
En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Threads y travesuras en C++
« Respuesta #4 en: 1 Octubre 2015, 20:27 pm »

Ya se a que "threads" te refieres y no son los "autenticos", ya que la clase thread no me crea un subthread.

He creado threads en C# y al ver mi app corriendo en el administrador de tareas me salian varios subthreads (los que había creado).

Sin embargo con C++ hice la prueba de hacer varias clases threads que ejecutaran funciones como en C# hacían y en el administrador de tareas no salía más que uno, y ningún subthread.

Luego la clase thread es lo mismo que auto x = async()... etc que ejecutan un poco uno y luego el otro y así, y no son thread al menos a los que me refiero. Si hay varios de esos el programa no daria a basto necesita un subproceso, otro programa independiente para no cargar tanto el proceso en ejecucion, dividirlo en varios procesos.

Saludos

Parece que esto es a lo que me refería:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682516(v=vs.85).aspx

Saludos.
« Última modificación: 1 Octubre 2015, 20:31 pm por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Threads y travesuras en C++
« Respuesta #5 en: 1 Octubre 2015, 22:03 pm »

La clase thread, crea y representa un thread, que es lo que es.

Usando C++11 no hay razón para utilizar threads de WinAPI.
Un thread cumple la función perfectamente.

Luego la clase thread es lo mismo que auto x = async()... etc que ejecutan un poco uno y luego el otro y así, y no son thread al menos a los que me refiero. Si hay varios de esos el programa no daria a basto necesita un subproceso, otro programa independiente para no cargar tanto el proceso en ejecucion, dividirlo en varios procesos.

Si pones 1 thread por procesador (contando el principal), con máxima prioridad, usarás toda al CPU, si es lo que pretendes. Los threads, son threads. Son sub-procesos. Y como tales, pueden ejecutarse en paralelo si hay múltiples procesadores. Esa es la función de los threads. En caso de 1 solo procesador, siguen haciendo su función, que es dividir los hilos de ejecución.

¿Qué no ves correcto?
En línea

Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: Threads y travesuras en C++
« Respuesta #6 en: 3 Octubre 2015, 13:42 pm »

Hola ivancea, gracias por la respuesta era justo lo que quería saber, no estaba seguro de que creará los subthreads pues en el administrador de tareas no aparecen que es donde los buscaba, y hasta ahora desconocia que existía el monitor de recursos.

Saludos.
En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sobre threads
Programación Visual Basic
ranslsad 0 1,377 Último mensaje 8 Octubre 2008, 11:42 am
por ranslsad
Threads en VB « 1 2 »
Programación Visual Basic
W0lFy 12 9,122 Último mensaje 15 Abril 2010, 09:14 am
por W0lFy
Las “travesuras” del “Google autocomplete” enfurece a las mujeres
Noticias
wolfbcn 1 1,463 Último mensaje 25 Noviembre 2013, 13:11 pm
por WaiHak
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines