[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 382

 
Integer:

Un gran aplauso. Sobre el código de la página 378. Aunque el terminal registre el orden de la cola, no puede saber en qué caso se ejecutó la función y en qué caso se rechazó.
¿Y qué? Entonces, ¿por qué necesita saberlo? Se proporciona acceso atómico. Eso es todo lo que necesita. Ocúpate del resto tú mismo. ¿De qué tarea habla? Todo es abstracto.
 
Zhunko:
¿Y qué? ¿Por qué necesitaría saber eso? El acceso atómico está asegurado. Es suficiente. Ocúpate del resto tú mismo. ¿De qué tarea está hablando? Todo es abstracto.


El acceso atómico no es suficiente. No hay garantía de que las tareas se ejecuten de forma consistente, puede que alguna tarea se quede atrás. Su código y sus registros muestran que las tareas se realizan al azar, no de forma secuencial.
 
Zhunko:
...Maneja el resto tú mismo...

Eso es lo que digo, tienes que hacerlo tú mismo, no basta con proporcionar un acceso atómico.
 
Zhunko:
...Es suficiente. Maneja el resto tú mismo....

Vadim, te contradices asombrosamente. Primero escribes que ya es suficiente. Entonces te das cuenta (o adivinas) que hay que hacer algo más.
 
¡Buenos días! Por favor, escriba, después de que se haya creado GlobalVariableSet ("Profit_pomnim", Itogo_Profit);
, ¿se puede seguir utilizando de forma tradicional -

Profit_pomnim=365; Bumbara=Profit_pomnim; o se debe llamar sólo a través de funciones especiales? GlobalVariableSet("Beneficio_pomnim", 365);
 
Dimka-novitsek:
¡Buenos días! Por favor, escriba, después de la creación de una variable global GlobalVariableSet("Profit_pomnim", Itogo_Profit);
¿se puede seguir utilizando de manera tradicional -

Profit_pomnim=365; Bumbara=Profit_pomnim; o debe ser abordado sólo a través de funciones especiales?


Bumbara=Profit_pomnim - no se puede hacer esto, no existe la variable Profit_pomnim. Pero hay una variable global Profit_pomnim.

Así es como debería ser: Bumbara=GlobalVariableGet("Profit_pomnim");

 
Integer:

El acceso atómico no es suficiente. No hay garantía de que las tareas se ejecuten de forma consistente, puede que alguna tarea se quede atrás. Su código y sus registros muestran que las tareas se ejecutan al azar, no de forma secuencial.
No entiendo... ¿Qué quiere decir...? ¿Qué garantía? Te llamas a ti mismo programador. Escriba de forma garantizada. ¿Cómo puede una tarea estar "detrás del bot"? ¿Qué has escrito ahí que no funcione?
Sospecho que te fijas en un orden especial para dirigirte a un recurso. Este es el enfoque equivocado para organizar el algoritmo. Escríbelo de tal manera que no importe.
Entero:

Eso es lo que digo, tienes que tomar medidas tú mismo, pero no basta con proporcionar un acceso atómico.
En mi práctica nunca ha sido necesario. Siempre puedes evitar este enfoque. Que sea sencillo. Funcionará de forma más fiable.
Entero:

Vadim, te contradices asombrosamente. Al principio escribes que es suficiente. Luego resulta que entiendes (o adivinas) que hay que hacer algo más.

No hay ninguna contradicción. Por encima de la respuesta.

====================

En cuanto a lo de ser complicado, recuerdo que escribiste una función con un complejo algoritmo para calcular el número de días de un mes. Todavía sonrío cuando lo recuerdo.

Dmitry, no hay necesidad de complicarlo demasiado. Si tienes constantes, no tienes que calcularlas. Sólo tienes que declararlos.

Lo mismo ocurre con el multihilo. Si no lo necesita, no debe utilizarlo. El orden especial de direccionamiento de un recurso implica la ejecución de un solo hilo.

Entero:
Una cosa más sobre la regulación del sistema. Si se crean varios hilos - sí, el sistema lo regulará. Pero si alguien de la parte ha entrado en estos hilos, entonces usted tiene que pensar en todo usted mismo, no habrá ningún milagro del sistema.
¿Quién es ese alguien? Nadie más se mete en mis hilos. Hay que escribir de manera que estén protegidos.

 

Zhunko:

1. No entiendo... ¿Qué quiere decir...? ¿Qué garantía?

2. Te llamas a ti mismo programador.

3. Escribe para que esté garantizado.

4. ¿Cómo puede una tarea "ir detrás del bot"? ¿Qué has escrito ahí que no se ejecuta?

5. Sospecho que te fijas en el orden especial de acceso al recurso. Este es el enfoque equivocado para organizar el algoritmo. Escríbelo de forma que no importe.

6. En mi práctica nunca ha sido necesario. Siempre puedes evitar este enfoque. Que sea sencillo. Funcionará de forma más fiable.

No hay ninguna contradicción. He respondido más arriba.

====================

7. En cuanto a lo de ser complicado, recuerdo que escribiste una función con un complejo algoritmo para calcular el número de días de un mes. Todavía sonrío cuando lo recuerdo.

8. Dmitry, no hay necesidad de complicar las cosas. Si tienes constantes, no tienes que calcularlas. Basta con declararlos.

9. Lo mismo ocurre con el multihilo. Si no lo necesitas, no lo uses.

1. Lo siento.

2. ¿Dónde, cuándo, dónde? ¿Qué tiene que ver eso ahora?

3. Escribo de forma garantizada.

4. Cualquiera de los que son accesibles atómicamente.

5. No. Y no en bucle, sino tomando medidas para garantizar que todas las tareas se lleven a cabo en orden.

6. No te pongas a parlotear. La función de intercambio de datos entre terminales de su biblioteca lo requiere, no sólo el acceso atómico.

7. ¿Qué función es esa? Cuéntame más. ¿Este? ¿Qué es lo gracioso? Tal vez no hayas entendido algo. Si esa función, era un interés deportivo y nada más. Por cierto, es una tarea muy compleja y el algoritmo más óptimo para esta tarea (de los conocidos) también es bastante complicado. Así que su sarcasmo es desafortunado.

8. ¿O tal vez deberías conseguir un trabajo en una guardería como enfermera? El nivel de predicación es el mismo, adecuado. Tal vez en el párrafo anterior insinuar que tipo de no sé cómo traducir el tiempo en segundos a horas minutos, etc. por funciones emkulya?

9. ¿Problemas de memoria o de conciencia de la realidad? Recuerde de qué se trata la discusión: cómo convertir una ejecución paralela de tareas en una secuencial.

 
Integer:

9. ¿Problemas de memoria o de conciencia de la realidad? Recuerde de qué trata la conversación: cómo convertir la ejecución paralela de tareas en una ejecución secuencial.

Su suposición de que la sincronización está fuera de lugar es el punto de partida:

Entero:

Vadim, ¿has probado a aplicarlo? No sincroniza nada. He estado jugando con él recientemente. Tienes que construir la cola tú mismo. Por desgracia, sólo reduce el código en tres líneas. O tal vez no lo entiendo.

Aquí está el código donde funciona la sincronización. Se proporciona acceso atómico al recurso. El resto es tu jugueteo para unir los hilos en un solo hilo. Te he sugerido que revises el algoritmo equivocado. Sólo hay una solución correcta para esta tarea: combinar todo el código en un solo hilo. Entonces el recurso será llamado en orden sin sincronización. El tiempo de ejecución del código será el mismo que en la ejecución multihilo. Que sea sencillo.

 
Zhunko:

1. Tu suposición de que la sincronización no funciona empezó contigo:

Aquí hay un código en el que la sincronización funciona. Se proporciona acceso atómico al recurso. El resto es tu jugueteo con la convergencia de los hilos. Sugirió que se revisara el algoritmo equivocado. La única solución correcta para esta tarea es fusionar todo en un solo hilo. Entonces el recurso será llamado en orden sin sincronización. El tiempo de ejecución del código será el mismo que en la ejecución multihilo. Simplifícalo.


1. No de una suposición, sino de los resultados de un experimento, que, por cierto, también se confirman con su experimento en la p. 378. 378.

2. El código de la página 378 sólo proporciona acceso atómico. No hay cola de ejecución de tareas. Puede ocurrir que una de las tareas tarde mucho tiempo en ejecutarse.