Sé lo que significa "hilo" y si entiendo el hilo de envío de eventos (EDT) como "solo un hilo", explica mucho pero, aparentemente, no explica todo.¿Cuál es el hilo de envío de eventos?
No entiendo qué tiene de especial este hilo. Por ejemplo, no entiendo por qué deberíamos comenzar una GUI en un EDT? ¿Por qué el hilo "principal" es la base para GUI? Bueno, si simplemente no queremos ocupar el hilo principal, ¿por qué no podemos iniciar la GUI solo en "otro hilo" por qué debería ser un hilo "especial" llamado EDT?
Entonces, ¿no entiendo por qué no podemos iniciar el EDT como cualquier otro hilo? Por qué deberíamos usar alguna herramienta especial (llamada invokeLater
). Y por qué GUI, a diferencia de cualquier otro hilo, no se inicia de inmediato. Deberíamos esperar hasta que esté listo para aceptar nuestro trabajo. ¿Es porque EDT puede, potencialmente, ejecutar varias tareas simultáneamente?
Si decide responder esta pregunta, podría utilizar una terminología muy simple porque de lo contrario, me temo que no seré capaz de entender la respuesta.
añadido:
Siempre pensé que tenemos una "tarea" por hilo. Entonces, en cada hilo, ejecutamos una secuencia predefinida de comandos. Pero me parece que en el caso de que se envíe el hilo, podemos tener una tarea de corte. Bueno, no se ejecutan simultáneamente (el hilo cambia entre diferentes tareas pero todavía hay varias tareas en un hilo). ¿Es correcto? Por ejemplo, hay un hilo en el EDT que muestra la ventana principal, y luego adicionalmente enviamos al EDT otra tarea que debería actualizar uno de los componentes de la ventana y EDT ejecutará esta nueva tarea siempre que esté lista. ¿EDT difiere de otros hilos de esta manera?
EDT es el mismo hilo que cualquier otro. Hay una tarea para cada hilo, en Java se expresa como un 'Runnable' pasado al' T hread' o un método 'run()'. Sin embargo, imagine tal tarea para un hilo: esperar en una cola y ejecutar cada tarea ('Runnable') que se agrega a mi cola. Así es como funciona. – pajton