Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Rak_Tortuga en 18 Junio 2018, 00:17 am



Título: ¿¿ES POSIBLE que C pueda leer 2 líneas de código al mismo tiempo ???
Publicado por: Rak_Tortuga en 18 Junio 2018, 00:17 am
Me vino la duda xd
(Quiero q lea 2 ciclos al mismo tiempo, c solo lee 1 y luego otro...)   :silbar:


Título: Re: ¿¿ES POSIBLE que C pueda leer 2 líneas de código al mismo tiempo ???
Publicado por: engel lex en 18 Junio 2018, 01:27 am
puedes hacer multihilo esto permite ejecutar codigos separados... pero ya por tu duda, comprendo que tu planteamiento probablemente es erroneo


Título: Re: ¿¿ES POSIBLE que C pueda leer 2 líneas de código al mismo tiempo ???
Publicado por: Serapis en 18 Junio 2018, 03:12 am
No queda claro lo que preguntas, resulta ambiguo.

De una parte la memoria es de acceso único, es decir en un instante dado solo se puede acceder a una única celda de la memoria, así que el trabajo simultáneo, no puede darse de por sí... Sin embargo, eso no implica que no sea posible otros trabajos simultáneos...
...el acceso a disco, por ejemplo tampoco, nuevamente tiene un único acceso en una unidad de tiempo.

Hay formas de superar estos escollos, cuando la latencia entre lecturas es muy breve, puede leerse de dos puntos distantes (independientes) entre sí, luego sin ser lectura simultánea, en la práctica lo es, pues divide el tiempo en fracciones tan pequeñas que resultan imperceptibles a la interacción humana (aunque físicamente no lo sean).

También si datos leídos en distintos momentos, son colocados en diferentes cores, si puede darse cierta simultaneidad, pués los cores están replicados y pueden operar en paralelo, incluso pueden tener cierta memoria independeinte o asociada al propio core. ...pero en ese caso requiere operar sobre ambos cores al mismo tiempo, y los lenguajes aún no poseen capacidades de control sobre cores, queda a disposición del S.O.

Ahora, dudo mucho que vayas por estos derroteros, asumo que más bien pretendes leer de dos sitios diferentes sobre un fichero... al caso, todo lo que necesitas son dos canales de lectura y que ninguno de ellos sea exclusivo (es decir que al abrir uno no bloquee la lectura a otros procesos)... entonces podrás leer directamente desde dos puntos distintos del fichero, cada uno mantendrá su puntero particular de avance...

Así que si es esto lo que buscas, se puede decir que sí, que C (y prácticamente cualquier lenguaje), puede operar con un mismo fichero en distintas partes del mismo de forma independiente, mantieneinedo un canal abierto por cada atención que interese operar, y no solo para leer, puede ser para leer y escribir, siempre que no se cometa errores de intentar acceder a zonas inaccesible (por ejemplo mientras escribes, el propio driver puede bloquear un sector hasta completar la escritura).

Y si es otra cosa, lo que preguntas, sé más específico... elimina ambigüedades en tus preguntas.