Curso Java. Threads I. Programación de hilos. Vídeo 168

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 200

  • @pildorasinformaticas
    @pildorasinformaticas  Год назад +5

    ✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
    🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀
    🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀
    💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥

  • @HELMET10100
    @HELMET10100 8 лет назад +145

    He pagado cursos de java en un instituto..y nunca aprendi nada...en menos de 30 minutos de un video aprendi muchas cosas..eres lo mejor que he visto explicado un tema muy concreto..

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +20

      Muchas gracias por el comentario. Me alegro de que te gusten los vídeos. Un cordial saludo!!

    • @Persiano_
      @Persiano_ 6 лет назад +6

      Okey maestro Juan Gómez... Lo que falta ahora es un curso de Spring Framework, de Hibernate, de Maven en Java, sería bueno que tú Juan nos enseñes cómo usar esos frameworks, saludos desde Lima, Perú

  • @iNandool
    @iNandool 4 года назад +2

    Creo que escribo por muchos, y enserio agradezco mucho tu forma de explicar, creí que era un tema mas complicado pero con tu explicación me quedo super claro, eres grande Amigo!

  • @alex351207
    @alex351207 8 лет назад +43

    No te puedes hacer una idea de lo agradecido que estoy de tus tutoriales y explicaciones y lo que me han ayudado en mis estudios, muchas gracias por tu trabajo.

  • @jugarprogramando8091
    @jugarprogramando8091 6 лет назад +1

    ¡¡¡¡¡....168 videos...!!!!! Gracias por tomarte el tiempo y la paciencia al compartir tus conocimientos.

  • @antoniocarrasco3114
    @antoniocarrasco3114 3 года назад +1

    Me has salvado la vida, tengo este viernes un examen de hilos y lo estoy entendiendo todo muy bien
    Gracias Juan.

  • @elnorte2
    @elnorte2 9 лет назад +30

    Este vídeo, como otros que he visto de tu canal, B-U-E-N-I-S-I-M-O. Personalmente he de informarte de que para mi los hilos formaban parte de esa parte de la programación digamos con caracter cercano a lo paranormal, que ni lo podia concebir, vamos. Pero gracias a este vídeo, he puesto un pie en el mundo de los hilos, por fin. Nunca te lo agradeceré lo suficiente.

  • @fernandoreyes9205
    @fernandoreyes9205 9 лет назад +9

    Solo puedo decir wow, es un curso excelente, me da tristeza no haber entrado antes a sus vídeos, mis felicitaciones!

  • @rozoneri
    @rozoneri 8 лет назад +14

    Profesor no sabe cuanto le agradezco estos vídeos he aprendido mucho con usted, en forma de pago también estoy difundiendo su excelente canal,se lo merece.

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +2

      +Easylisimo Gracias por tu comentario. Me alegro de que te guste. Un saludo

  • @oscar10051987
    @oscar10051987 9 лет назад +6

    Gracias por tu excelente curso de JAVA, contigo e aprendido muchísimo mas de lo que e aprendido en la universidad. Es increíble ver que durante el primer año de carrera no te enseñan ni a programar una simple ventana. E mejorado mucho gracias a ti.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +3

      +Oscar Antonio Rubí Ramírez Gracias !! me alegro de que el curso haya sido de utilidad. Un saludo

  • @michelbenites1854
    @michelbenites1854 5 лет назад +1

    Increíble todo el tiempo y la dedicación en cada uno de los mas de 270 vídeos.
    Estoy muy agradecido de todo el conocimiento compartido.
    Tu trabajo me inspira a seguir aprendiendo y a mejorar cada día, un cordial saludo desde Santiago de Chile.

  • @guillermoviscoponticelli
    @guillermoviscoponticelli 5 лет назад +3

    Que buen ejemplo. Los años que he querido saber esto. Increíble Juan, 100% agradecido.

    • @pildorasinformaticas
      @pildorasinformaticas  5 лет назад +3

      Gracias por el comentario. Me alegro de que te guste. Un saludo!

  • @flan_02
    @flan_02 5 лет назад +3

    finalice la primer parte del curso en 4 meses, excelente trabajo sr. Juan !

  • @penguinwolf0125
    @penguinwolf0125 7 лет назад

    Me he tenido que reír en el minuto 15, qué grande eres Juan... tienes un don para enseñar que lo sepas.

  • @walterjosesuarezdelacruz1495
    @walterjosesuarezdelacruz1495 5 лет назад

    Ya había visto estos vídeos, pero ahora quiero hacer mover figuras geométricas,y nada mejor q tener teoría clara y precisa para este tema.

  • @okmancera
    @okmancera 3 года назад

    Muchisimas gracias por compartir tanto conocimiento, llevo como 100 videos y todos excelentes. Muchas gracias.

  • @papaprimerizoes3548
    @papaprimerizoes3548 2 года назад

    Muchas gracias por compartir tus conocimientos Juan. Me han ayudado mucho tanto en las clases como en el trabajo. Un abrazo

  • @salvadorcano553
    @salvadorcano553 3 года назад +1

    El curso es muy bueno, eres sin duda el que mejor he visto que lo explique; pero habría que hacer varios apuntes:
    1- No has explicado que al implementar cada hilo se mueven las pelotas, pero la aplicación se cierra en el momento porque el que actúa es el hilo principal, que sigue en ejecución esperando eventos.
    2- Existe la posibilidad de crear una clase que en lugar de Runnable extienda de Thread y así nos evitamos algunos pasos intermedios.
    3- Habría que aclarar y repetir, que el hilo se crea al crear la instancia, con el método start() se inicia, y ejecuta el método run(), que es el que lo dota de funcionalidad. Son aspectos que se pueden confundir.
    Son apuntes que a nivel conceptual, entiendo que son importantes.
    Gracias por tu trabajo titánico durante el desarrollo de este curso tan extenso y tan bueno.

  • @marioherrera2055
    @marioherrera2055 5 лет назад +1

    Buen video, tenía unos años de no ver Java dado que me enfoqué en lenguajes web y cms pero con ver este video, logré recordar aspectos de JPanel, JFrame que se hacen a pata y no usando la paleta del Eclipse o NetBeans y poco a poco fui recordando el tema de los hilos, se que me falta recordar pero viendo los otros videos del canal iré recordando dichos aspectos, saludos

  • @samuelcd80
    @samuelcd80 9 лет назад +1

    Solo quería felicitarte por el curso y darte las gracias por compartir tus conocimientos.

  • @ignacioantoniojeriagarrido6877
    @ignacioantoniojeriagarrido6877 8 лет назад +1

    gracias profesor. Me partí un poco el coco en este video hasta que lo comprendí. Comento para que sepa que no lo he abandonado xD y que estaré eternamente agradecido con usted. Saludos!

  • @Mrleopola
    @Mrleopola 9 лет назад +2

    Uhh! Qué buen tema! Ya llegamos a ésta parte que es clave! Cómo me esta abriendo la cabeza Java!
    La explicación no puede ser mejor ni mas gráfica! una joya! Muchas gracias de nuevo!!!!
    Abrazo, Leopoldo.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      Leopoldo Miracco Gracias !! Saludos como siempre amigo

    • @rominaisaia1243
      @rominaisaia1243 9 лет назад

      pildorasinformaticas muy buen curso a mi me está ayudando un montón con un proyecto que debo entregar la verdad que es uno de los pocos cursos que encontre que explica tan bien...quería preguntarle profesor si puedo hacer unas consultas via email o por mensajeria...pues debo terminar un video juego el tiempo me apremia el video de hilos me ayudo un monton..pero estoy un poco atascada...bueno espero su respuesta saludos...Romina

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +1

      Puedes hacer las consultas que quieras por este mismo medio o por mail a la dirección cursos@pildorasinformaticas.es
      Las dudas que me llegan por mail tardo en contestar. Recibo cientos de mails al día. Un saludo

    • @rominaisaia1243
      @rominaisaia1243 9 лет назад

      pildorasinformaticas Gracias por contestar..tengo que hacer un video juego...ya tengo la parte inicial en donde uno selecciona a que video juego quiere entrar, eso barbarbo, se apaga y se prendre el sonido...ahora en donde no puedo seguir es en la pantalla del juego es decir el fondo que se mueva, simular un corrimiento de camara....(no se si me explico) y el personaje con el teclado...esto último lo estoy intentando con lo que publicaste último...si me podes dar una orientación desde ya más que agradecida....saludos (reitero muy buen curso)

  • @billyretamal8932
    @billyretamal8932 9 лет назад +3

    Bravo!! Ando en búsqueda de como crear un hilo de tipo demonio pero este video me sirvió para entender la base de su funcionamiento. En verdad se agradece, video muy bien explicado, lastima no haberlo encontrado antes! Saludos!

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +Billy Retamal Muchas gracias. Me alegro de que sea de utilidad. Un saludo

  • @jesusmunoz1
    @jesusmunoz1 10 месяцев назад

    Excelente curso maestro, muchisimas gracias por todo, me ha ayudado muchisimo.
    Saludos desde Venezuela.

  • @nicotoobebello6386
    @nicotoobebello6386 5 лет назад +2

    Las pelotas a mi se me veían entrecortadas cuando le daba al botón "Dale!". No se si es porque soy usuario de Linux pero di con una solución buscando en internet. Lo que hay que hacer es ir al método paintComponent(Graphics g) y colocar dentro el método revalidate() para que la ventana siempre se revalide (es como si estuviéramos moviendo el mouse sobre la ventana). El resultado de esto es que se ve la pelota con un movimiento más fluido y sin que se vea entrecortado.
    Gracias por este maravilloso curso! sigue así :D

  • @harrisonmartinez4531
    @harrisonmartinez4531 7 лет назад +1

    Buen inicio de la segunda parte profesor, gracias!! le sigo desde el primer vídeo he aprendido mucho!!

  • @alejo3157
    @alejo3157 4 года назад

    Excelente clase, por favor siga subiendo mas conocimientos. gracias.

  • @sergiomateo2046
    @sergiomateo2046 7 лет назад

    Muchas Gracias, me ha servido de mucho la explicación acerca de los Hilos y mas en una forma dinámica, Muchas Gracias

  • @ajsa52
    @ajsa52 2 года назад +1

    El problema de la excepcion ConcurrentModificationException que sale cuando pulsas en "Dale" varias veces, es porque se llama al metodo add de la clase LaminaPelota mientras el bucle for del metodo paintComponent está a medias. Una forma de evitarlo es sustitur la lista ArrayList por una lista CopyOnWriteArrayList que es válida para concurrencia.
    Aunque en este caso concreto quizá es más eficiente sustituir el bucle for-each por un bucle for tradicional. Asi nos evitamos el uso del iterador interno del for-each que es el que provoca la excepción. Esto se puede hacer porque no tenemos borrados de elementos de forma concurrente, solo inserciones (add), y no nos importa que un paint que esta a medias no mueste el ultimo elemento que se acaba de añadir en un add de forma concurrente, ya lo mostrara en el siguiente paint 4 milisegundos más tarde.

  • @edwardmuri5895
    @edwardmuri5895 5 лет назад

    brutal vídeo colega, la verdad apesar de que llevo ya un buen tiempo en el mundo de la programacion, era un poco escéptico al tema de los hilos y no me quedaba totalmente clara su motivo, pero con este video me ha quedado clarisimo.
    Sin duda alguna me sucribo y like sin dudarlo, sigue asi

  • @OscarDiaz-fr3ss
    @OscarDiaz-fr3ss 5 лет назад +16

    El parpadeo mejora enormemente sincronizando los gráficos al final de paint():
    public void paintComponent(Graphics g){
    super.paintComponent(g);
    Graphics2D g2=(Graphics2D)g;
    for(Pelota b: pelotas){
    g2.fill(b.getShape());
    }
    // Asegura que el objeto gráfico se actualiza
    Toolkit.getDefaultToolkit().sync();
    }

  • @cristhianjonathangomezramo5301
    @cristhianjonathangomezramo5301 8 лет назад

    muchas gracias por su video, es el primero que veo y esta muy bueno, me veré todos gracias!

  • @arturoguerrero8958
    @arturoguerrero8958 9 лет назад +6

    Que tal mi estimado Juan¡ Antes que nada permiteme enviarte mis felicitaciones por este curso. Es excelente y lo sigo puntualmente¡ Mi preocupación es si vas a continuar con los videos ya que me gustaría mucho continuar hasta la totalidad del curso. Saludos desde México.! un abrazo.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +6

      Arturo Guerrero Hola !! Por supuesto que voy a continuar. De hecho el último vídeo subido es de hace 4 días y si te fijas en las fechas de los vídeos verás que subo un mínimo de dos a la semana y en muchas ocasiones más. Un saludo

  • @estbm1
    @estbm1 6 лет назад

    Siempre con información clara y directa, muchas gracias :D excelente profesor como siempre. Saludos

  • @albertorivera8428
    @albertorivera8428 5 лет назад +1

    Eh esperado con ansias llegar hasta aqui

  • @baraobrincadeira
    @baraobrincadeira 5 лет назад

    Sos el Mejor!. Te felicito por tus cursos!.

  • @TheMigatitomiau
    @TheMigatitomiau 6 лет назад

    El curso es excelente, felicidades, sigue adelante...

  • @DcAGame
    @DcAGame 7 лет назад +1

    Gracias a ti aprobé el examen de Programación. Muchas gracias por el video ^^
    PD: Las coordenadas X e Y las he puesto Ramdom para que me salgan en sitios difetentes así queda más chulo jejeje Salu2

  • @ssmatiuri
    @ssmatiuri 9 лет назад +2

    Aunque estaba esperando los videos de concurrencia, me hubieran gustado más de genéricos, porque el tema me da algunos problemas todavía. Aun así, excelente video.

  • @andresrivera525
    @andresrivera525 6 лет назад +1

    Muchas gracias, que buen profesor , me ha servido de mucho

  • @g_r_x_v
    @g_r_x_v 3 года назад +1

    Muchas gracias Juan!

  • @argentina1387
    @argentina1387 4 года назад +1

    Gracias, muchas gracias profesor!!

  • @yacoobsc.m3269
    @yacoobsc.m3269 8 лет назад +8

    Estaba intentando hacer lo mismo que tu, pero me ha salido otra cosa diferente pero muy curiosa y graciosa al mismo tiempo espero que les guste y aprendan un poco mas de java con el ejemplo.....
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class PracticandoConJava extends JFrame{
    public static void main(String[] args) {
    new PracticandoConJava();
    }
    public PracticandoConJava(){
    setTitle("Practicas GRaficas");
    setDefaultCloseOperation(3);
    setBounds(10, 10, MarG1, MarG2);
    setVisible(true);
    LaminaNorte lanorte= new LaminaNorte();
    add(lanorte,BorderLayout.NORTH);
    lanorte.add(BotonStop);
    lanorte.add(BotonLimpiar);
    lanorte.add(jbola);
    lanorte.add(jlinea);
    lanorte.add(jtexto);
    BotonStop.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    thread.stop();parar=false;}});
    BotonLimpiar.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    repaint();
    }});
    jlinea.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    bola=false;string=false;
    }});
    jbola.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    bola=true;string=false;
    }});
    jtexto.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    string=true;bola=true;
    }});
    add(new LamainaSur(),BorderLayout.SOUTH);
    add(new RodarEvento(), BorderLayout.CENTER);
    }
    class RodarEvento extends JComponent{
    public RodarEvento(){
    this.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e){ //Se ejecuta cuando pulsas el mouse sobre la lamina
    System.out.println("EventoCargado");
    parar=true;
    colores++;
    ancho= e.getX();
    largo=e.getY();
    Runnable arrancar= new eventosHilos(); //Instanciamos nuestra clase para poder ejecutarla varias veces...
    thread = new Thread(arrancar); // Instanciamos la clsase Thread y creamos una variable que alojara un objeto de tipo Runnable
    thread.start(); // Finalizamos poniendo a nuestra variable thread un metodo de inicio llamado start().
    }});
    this.addMouseMotionListener(new MouseMotionAdapter() {
    public void mouseDragged(MouseEvent e) { //Se ejecuta cuando arrastras el mouse haciendo un efecto a la linea de pintado
    ancho= e.getX();
    largo=e.getY();
    paint(getGraphics());
    }}); }
    public void paint(Graphics g){
    Graphics2D drawD2 = (Graphics2D)g;
    if (colores==1){
    drawD2.setColor(Color.BLUE);
    }if (colores==2){
    drawD2.setColor(Color.RED);
    }if (colores==3){
    drawD2.setColor(Color.ORANGE);
    }if (colores==4){
    drawD2.setColor(Color.BLACK);
    }if (colores==5){
    drawD2.setColor(Color.GREEN);
    }if (colores==6)colores=0;
    drawD2.setStroke(new BasicStroke(5));
    if (string){
    drawD2.drawString("PildorasInformaticas", ancho, largo);
    }else drawD2.drawOval(ancho, largo, 2, 2);
    }
    class eventosHilos implements Runnable{
    @Override
    public void run() {
    if (largo>1 || ancho>1){
    while (parar){
    if (largo==0){
    entra1=true;entra3=false;}
    if (ancho==0){
    entra2=true;entra4=false;
    }
    if (largo==MarG2-100){
    entra3=true;entra1=false;
    }
    if (ancho==MarG1-20){
    entra4=true;entra2=false;
    }
    if (entra1){
    largo++;
    }
    if (entra2){
    ancho++;
    }
    if (entra3){
    largo--;
    }
    if (entra4){
    ancho--;
    }
    if (bola){repaint();}
    paint(getGraphics());
    try {
    Thread.sleep(velocidad);
    } catch (InterruptedException error) {
    error.printStackTrace();
    }
    System.out.println(largo+" "+ ancho);
    }
    }
    }
    }
    }
    class LamainaSur extends JPanel{
    public LamainaSur(){
    texto1.setForeground(Color.BLUE);
    add(texto1);
    setBackground(Color.ORANGE);
    }
    }
    class LaminaNorte extends JPanel{
    public LaminaNorte(){
    add(texto);
    setBackground(Color.GREEN);
    }
    }
    JButton BotonStop=new JButton("!Parar!");
    JButton BotonLimpiar=new JButton("Limpiar");
    JButton jbola=new JButton("Bola");
    JButton jlinea= new JButton("Linea");
    JButton jtexto=new JButton("Texto");
    Thread thread;
    int velocidad=10;
    int bucle=20000;
    int colores=0;
    int MarG1=521;
    int MarG2=552;
    boolean parar=true;
    boolean entra1=true;
    boolean entra2=true;
    boolean entra3,entra4;
    boolean bola;
    boolean string=false;
    int ancho=-10;
    int largo=-10;
    JLabel texto= new JLabel("Botones...");
    JLabel texto1= new JLabel("Pulsa en la lamina central, cuantas mas veces pulsas mas rapido se mueve");
    }

  • @yelsinpulidohermitano3606
    @yelsinpulidohermitano3606 9 лет назад +4

    un gran talento para enseñar thanks :3

  • @memejamas3818
    @memejamas3818 2 года назад

    gracias profe esta clase se puso buena

  • @SoySaavedra
    @SoySaavedra 8 месяцев назад

    Clarísimo Juan, gracias!

  • @MGGF95
    @MGGF95 9 лет назад

    Amigo excelente vídeo en serio, todos los vídeos que tenés son increibles. Sabés que seria genial, que tus vídeos se pudieran descargar, es decir, que subieras un enlace para poder tenerlos en el ordenador. Lo dificil es que son muchos vídeos y ocuparía mucho. Pero regresando a la intro, excelentes vídeos, seguí así.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +Mario Grajeda Hola !! Gracias por el comentario. Me alegro de que te gusten. Un saludo

  • @marioprado8789
    @marioprado8789 Год назад

    No entendí por qué si implementaste lo de hilos en el botón dale, pudiste salir sin problemas usando el otro botón al final.
    De ahí en fuera fue un gran video, gracias.

  • @pablofonseca446
    @pablofonseca446 5 лет назад +1

    Excelentes vídeos profesor, sin duda me han servido muchísimo. He topado con la suerte de tener buenos profesores en la universidad, pero usted, es igual a ellos, incluso podría decirle que es mejor, definitivamente estoy muy agradecido con su contenido, muchas gracias por dedicar su tiempo.
    Estoy intentando desarrollar un Snake, un profesor de la universidad me indicó que después de Programación I tengo que estudiar dos temas esenciales de POO, por dicha ya había visto una buena parte de sus vídeos, ahora estoy estudiando la clase ArrayList y también este tema, Threads. Tengo una duda con el código fuente y es que no estoy muy ubicado porque no observé el vídeo explicativo de las animaciones en general, si usted sabe cuál es el vídeo o los vídeos le agradecería montones si lo menciona, igualmente, si el público en general sabe en cuál sección del PlayList se encuentra, estaría muy agradecido por su apoyo, muchas gracias nuevamente.

  • @coronadev3804
    @coronadev3804 4 года назад

    Súper Ejemplo! Muchas gracias =)

  • @cristiangs2307
    @cristiangs2307 4 года назад

    Juan, aqui es donde me parece que tu paciencia se estaba agotando....jaja...review review review.....Saludos! Excelente tu trabajo pero aca dimos un salto gigante....ABZ

  • @luisrivera-lf5gr
    @luisrivera-lf5gr 5 лет назад

    Gracias por compartir tus conocimientos :)

  • @cristiannunez2343
    @cristiannunez2343 6 лет назад +1

    JAJAJA como me sacaste una risa cuando dijiste nos podemos morir al esperar que termine JAJAJA

  • @eltallerdedante6335
    @eltallerdedante6335 Год назад

    Voy a dejar esto por aquí por si a alguien más le pasa.
    Resulta que yo no veía nunca la pelota demasiado rápida, solo podía ir más lenta pero no tan rápida como para no poder seguirla con los ojos.
    Se debía a que uso un limitador de fotogramas en el panel de control de Nvidia a 60fps en la "Configuración global", para videojuegos básicamente.
    Al desactivarlo y sin hacer uso de sleep(), vuelve a ir tan rápido como puede.

  • @sueocho8489
    @sueocho8489 3 года назад

    Hola que taaaal , la mejor intro

  • @teldatamcy5656
    @teldatamcy5656 8 месяцев назад

    Excelente!!!, Gracias. Chévere cambur 🍌!!!!

  • @randallbiermann2525
    @randallbiermann2525 5 лет назад +2

    metodo muy bueno para establecer láminas principales en un JFrame es el instanciaJFrame.setContentPane(lamina);

  • @gonzaloalonsorodriguez4929
    @gonzaloalonsorodriguez4929 5 месяцев назад

    Un vídeo increible

  • @xepcperez3061
    @xepcperez3061 3 года назад

    Hermano mio, te mereces un monton de gracias por la metodologia de enseñanza y tus conocimientos, te enviaré una implementación de la interface "TableModel" (CRUD para cualquier tabla de postgreSQL) que hice hace varios años, para que la analices y expliques a todos con detenimiento. me puedes dar una via para enviartela o donde publicarla en tu sitio????

  • @stevenrodriguezgarro1799
    @stevenrodriguezgarro1799 7 лет назад +2

    Muy bueno el vídeo, no tienes algún tutorial de programación en Android, explicas muy bien

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +1

      Gracias por el comentario. Mira este enlace: ruclips.net/p/PLU8oAlHdN5Bkn-KS1sRFlSEnXXcAtAJ9P
      Un saludo!!

  • @juanmigarcia393
    @juanmigarcia393 9 лет назад +1

    Eres el mejor

  • @manolopajaro_videos5894
    @manolopajaro_videos5894 3 года назад

    excelente video bien explicado

  • @evangelinagil9522
    @evangelinagil9522 4 года назад

    Muy Buenos tus viedos! Pero nocesito correr varios algoritmo para mostrar cual es el mas eficiente. ya sea exponencial, loritmo, cuadratico, etc. Como genero diferentes ventanas y que se ejejuten a la vez dado un velor de entrada.

    • @evangelinagil9522
      @evangelinagil9522 4 года назад

      mostrarlo en diferentes paneles pero en la misma ventana

  • @realsamu
    @realsamu 8 лет назад +1

    muchas gracias amigo , un saludo

  • @felipgp7677
    @felipgp7677 9 лет назад +1

    Excelente profe!

  • @cristiandiaz553
    @cristiandiaz553 2 года назад

    Vengo del futuro a ver el vídeo sin haber visto el resto de clases... Deséenme suerte.

  • @vNymeria
    @vNymeria 5 лет назад

    Lo que daría para que fueras mi profesor.

  • @hebersolisbravo4502
    @hebersolisbravo4502 9 лет назад +1

    Chevere, muy claro, :)

  • @juanmanuelmagnaterra7668
    @juanmanuelmagnaterra7668 6 лет назад +3

    Hola, quiero hacer una aclaración pequeña... El hecho de que se ejecute concurrentemente en realidad no significa que sea a la vez... El procesador puede ejecutar simultaneamente tantas tareas como núcleos tenga... pero un CPU (es decir, un núcleo) puede ejecutar solo una tarea a la vez... el hecho de que las tareas de la cola de listos se ejecuten de forma concurrente implica que si bien se ejecutan de una tarea a la vez, el procesador va desarrollando las tareas de tal forma que da la sensación de que se ejecutaran a la vez...

    • @juanmanuelmagnaterra7668
      @juanmanuelmagnaterra7668 6 лет назад +1

      al final quise poner ".....de tal forma que da la sensación de que se ejecutaran VARIAS a la vez..."

    • @pildorasinformaticas
      @pildorasinformaticas  6 лет назад

      Es correcto lo que dices pero no quería afinar tanto. Un saludo!

  • @damiva
    @damiva 7 лет назад +2

    por fin !! matemáticas te utilizo xd

  • @designanimation
    @designanimation 5 лет назад

    Hola profesor y companeros!
    Ante todo quisiera agradecerle por todo. Tengo una pregunta fundamental, acerca del curso de JAVA (primer curso que hice bajo pildorasinformaticas y soy totalmente novato). Estoy por el Vídeo 169, en donde es allí donde necesito saber donde estoy parado, (ya que el ejercicio de pelota rebotando me bolo la cabeza), y ahora, quiero empezar a hacer ejercicios, porque después de ver tantos videos, necesito comenzar por hacer otros ejercicios, pero no se de que sitio web (porque hay miles), o que libro me puede recomendar para arrancar con buenas raíces.
    Muchas gracias como siempre!!

  • @guillermovazquezdelara7623
    @guillermovazquezdelara7623 3 года назад +1

    Hola buenas no se si la pregunta pueda ser contestada... pero me surgio un error al abrir el codigo en eclipse del archivo de descarga relacionado con UTF-8 que en lugar de acentos muestra un signo de interrogación dentro de un rombo y otros simbolos raros en los comentarios que llevan ñ.. hay alguna manera de configurar eclipse para que no pase esto ?
    Saludos y sigo con tu cursos Juan que son geniales se aprende mucho en este canal

  • @richardduran7113
    @richardduran7113 9 лет назад +1

    Excelente

  • @peskao023
    @peskao023 4 года назад

    Muy comprensible todo, de gran ayuda.
    El hecho de que el programa pete al ejecutar muchos hilos podría tener que ver con la capacidad o número de hilos que tiene tu procesador? o al correr todo en la JVM no tiene nada que ver?

    • @ajsa52
      @ajsa52 2 года назад

      El problema de la excepcion ConcurrentModificationException que sale cuando pulsas en "Dale" varias veces, es porque se llama al metodo add de la clase LaminaPelota mientras el bucle for del metodo paintComponent está a medias. Una forma de evitarlo es sustitur la lista ArrayList por una lista CopyOnWriteArrayList que es válida para concurrencia.
      Aunque en este caso concreto quizá es más eficiente sustituir el bucle for-each por un bucle for tradicional. Asi nos evitamos el uso del iterador interno del for-each que es el que provoca la excepción. Esto se puede hacer porque no tenemos borrados de elementos de forma concurrente, solo inserciones (add), y no nos importa que un paint que esta a medias no mueste el ultimo elemento que se acaba de añadir en un add de forma concurrente, ya lo mostrara en el siguiente paint 4 milisegundos más tarde.

  • @FranciscoXavierRojasCeli
    @FranciscoXavierRojasCeli 6 лет назад +4

    A los que están muy agradecidos ... ¿sabian que pueden donar? lol... bueno quienes tengan recursos...

  • @marcossalas7416
    @marcossalas7416 4 года назад +1

    Muy bueno pero tengo una pregunta, porque el método salir funciona? Si has metido los hilos solo a la hora de generar pelotas como es que esa función es accesible? Gracias

  • @danielmercadoalvarado4155
    @danielmercadoalvarado4155 8 лет назад +1

    Ten una duda espero me puedas responder
    En tus videos no recuerdo si lo vi o no voy en el 168,
    Tienes el tema de ejecutar aplicaciones en segundo plano
    Me refiero a que si está en segundo plano la aplicación siga funcionando y no se detenga

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Hola !! Eso corresponde al tema de los Threads. Efectivamente comienza en el vídeo 168 : ruclips.net/video/qXhc4wbDaqU/видео.html
      Y sucesivos. Un saludo!!

  • @sfhj8435
    @sfhj8435 8 лет назад +1

    Hola. gracias por su video; se aprende muchisimo con usted, pero tengo una pregunta y es por que le paso pelota y lamina como parametros al constructor de la clase que implementa la interfaz Runnable? le agradezco una respuesta.

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +Johan Fonseca Sanchez Dime por favor minuto y segundo del vídeo donde aparece en el código lo que mencionas, y te responderé a la pregunta. Un saludo!!

  • @Davimejor
    @Davimejor 9 лет назад +1

    Profe buen video,un pregunta cuantos videos quedan para empezar con la bases de datos???

  • @forsabarça
    @forsabarça 4 года назад

    private static final int tamX = 15, tamY = 15;
    private double x = 0, y = 0
    double dx = 1, dy = 1;
    ¿Qué tall si agrupamos las variables de class con el objetivo de reducir código?

  • @frey.o.o
    @frey.o.o 5 лет назад

    saludos Juan, este ejercicio lo hice en su epoca con tus instrucciones pero se me perdio, el link de la descripción se encuentra malo, es posible que lo vuelvan a montar? o algún alumno colega me lo puede suministrar. saludos cordiales

  • @s3ktor469
    @s3ktor469 4 года назад

    Una pregunta, si tengo una clase Coche de la cual creo y defino los objetos, y la llamo desde otra CocheTest usando el extends para poder hacer un super de sus atributos y realizar los set y get y ademas implemento desde esa misma clase el runnable aplicando el run esta bien hecho?

  • @maotoledos
    @maotoledos 6 лет назад +4

    Sinceramente me ha costado un poco entender el código. Para nosotros los principiantes les doy un consejo:
    Separen el código por clases y debbugeen

  • @moisesleonor4597
    @moisesleonor4597 8 лет назад

    Hola buenas noches este es un tema que siempre e querido aprender gracias por enseñarlo, tengo una duda que se sale del tema recuerdo en los primeros videos que un boton los ponias a la escucha por medio de la interfaz ActionListener pero en este caso a esa pelota como la pondria a la escucha digamos que si doy clic sobre ella que se cierre el programa Espero su respuesta Gracias por todo

  • @lord-jarc
    @lord-jarc 4 года назад

    20:46 soy serio con estas cosas pero morí con PelotaHilos xD :v

  • @johannsamaya3689
    @johannsamaya3689 6 лет назад

    Hola. Muy buen curso. Donde podría ver el código para estudiar mejor?

  • @MsBriansteve
    @MsBriansteve 6 лет назад

    Feliz día del maestro atrasado..
    Y como seria un botón para que en vez de salir quite 1 pelota?

  • @cbluis7567
    @cbluis7567 9 лет назад

    Hola que tal!Tengo algunas dudas a ver si es posible resolverlas(sobre el programa multihilos del video).No logro entender como se añade a la laminas la(s) pelota(s), si al llamar al metodo "lamina.add(pelota)"desde el metodo "comienza_el_juego" de la clase MarcoRebote, la logica me dice que lo que hace es añadir las pelotas al arraylist que hay de la clase LaminaPelota, ya que en el metodo "addd(Pelota b)" de la clase LaminaPelota entiendo que con la instruccion "pelotas.add(b)" al ser "pelotas" un arrayList lo que hace ese metodo al llamarlo es añadir las pelotas al arrayList ,y no añadirlas a la lamina como se comenta en el video(sé que estoy equivocado pero no se por qué). O es que se supone que añ añadir las pelotas al arraylist ya estoy añadiendolas a la lamina?No lo acabo de entenderOtra duda es: Si el hilo que minimiza o cierra el marco(sería el del main) o el del boton "cerrar" no está dentro del metoComo puesto entonces cerrar la aplicacion mientras se está ejecutando?Sé que la respuesta es muy basica pero tampoco entiendo esa parte.Y por último: ¿Lalinea "componente.paint(componente.getGraphics())" dentro del bucle for en la clase PelotaHilos llama al metodo "public void paintComponent(Graphics g)" de la clase LaminaPelota, y esto es lo que va pintando constanstemente la lamina?Muchisimas gracias y saludos!!!

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +2

      +Carl Bacchus Luis Hola !! Vamos por partes:
      "No logro entender como se añade a la laminas la(s) pelota(s), ..........". Respuesta: La clase LaminaPelotas tiene un método paintComponent en el cual pintamos pelotas con el método fill de la clase Graphics. Si después agregamos la lámina al marco, ya tenemos un marco con una pelota dibujada. Si además metemos la instrucción en un bucle como hacemos másadelante, ya tenemos varias pelotas.
      "Si el hilo que minimiza o cierra el marco(sería el del main) o el del boton "cerrar" no está dentro del metoComo puesto entonces cerrar la aplicacion mientras se está ejecutando?......" Respuesta: He leído varias veces la pregunta pero no logro entenderla. ¿Podrías redactarlo e otra forma?
      "Y por último: ¿Lalinea "componente.paint(componente.getGraphics())" dentro del bucle for en la clase PelotaHilos llama al metodo "public void paintComponent(Graphics g)" de la clase LaminaPelota, y esto es lo que va pintando constanstemente la lamina?" Respuesta: Correcto. Y esto responde en gran medida a tu primera pregunta.
      Un saludo

    • @cbluis7567
      @cbluis7567 9 лет назад

      +pildorasinformaticas
      Gracias por la respuesta tan rápida y clara, lo he
      entendido(yo lo había planteado mal, pensando que había que añadir las pelotas
      a la lamina, como por ejemplo se hace con un botón, o con una lamina que añades
      a otra lamina o marco)
      Sobre la pregunta que no se entiende, volviéndola a leer yo
      tampoco la he entendido :P A ver si soy capaz de hacerla que se entienda: Sé
      que dentro del método “run” se pone el código correspondiente a las tareas que sean simultaneas, entonces
      como cerrar/minimizar el marco (“setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);”)o
      salir del programa(gracias a “System.exit(0);” en el botón de Salir) entiendo
      que tambien son hilos pensaba que también se tendría que poner dentro del método
      run, o llamar desde ahí. Sé que no es así porque el video me lo demuestra, pero
      quisiera saber por qué mi planteamiento es erróneo(Pensaba que era así porque
      en el primer programa hecho sin Threads no se podía cerrar el marco hasta que
      la bola parase)
      Sé cómo se debe hacer(he aprendido gracias a ti) pero quisiera
      saber el por qué de las cosas, es la mejor manera de aprender(por eso, entre
      otros motivos, me encantan tus videos, porque explicas todo muy claramente y
      detalladamente)

  • @edersorto7346
    @edersorto7346 4 года назад

    :D threads ... Gracias

  • @thrafiker10
    @thrafiker10 9 лет назад +1

    Duda, cuando crea la lamina, ahi ya tiene un hilo, es el hilo principal es el mismo que cierra la aplicacion, y al pulsar el boton "Dale!" se crean nuevos hilos, es asi o me equivoco.
    saludos, excelentes cursos :).

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +Ricardo Lopez Así es. Correcto !! Un saludo

    • @robertofragaalarcon4018
      @robertofragaalarcon4018 6 лет назад

      me crea una duda, al no estar el código de salir en el metodo run() solo se podría salir cuando el hilo principal acabe?
      muy bueno el curso de lo mejor de youtube, hay muchisimo trabajo detrás de estos videos. me alegro mucho que la gente sepa valorarlo.
      un saludo. muchas gracias

    • @robertofragaalarcon4018
      @robertofragaalarcon4018 6 лет назад

      dandole mas vueltas lo único que se me ocurre es que cuando se crea la primera pelota se crea otro hilo y deja el hilo principal libre.

  • @gok1899
    @gok1899 2 года назад

    se puede manejar los treads dentro de interfaces graficas??

  • @esaimnajera9535
    @esaimnajera9535 6 лет назад

    ¿Alguien mas se desesperó porque no le daba click a "Dale" y lo dejaban con ganas de ver a la pelota rebotar?

  • @thebryant6344
    @thebryant6344 5 лет назад +2

    Quisiera que hagas un curso de JavaFx :c

  • @d02veagj
    @d02veagj 2 года назад

    Buenas. yo me acabo de descargar al archivo pero el programa no se ejecuta como debe. Puede ser haya algo desactualizado y por eso no funciona bien? gracias

  • @STEVEN51362
    @STEVEN51362 6 лет назад

    Amigo, podrias colocar en que video explicas la logica de la Clase Pelota? Por favor

  • @giancarloandrebravoabanto7091
    @giancarloandrebravoabanto7091 7 лет назад

    en otras palabras. me está diciendo de que la utilización de los bucles sin threads en una aplicación es inviable ?.
    porque claramente se puede crear una segunda pelota, si agregara un evento listener y que instancie objetos en una array

  • @sfhj8435
    @sfhj8435 8 лет назад +1

    Buenas tardes; me podria decir cual fue el tutorial donde usted realizo bien este ejemplo. gracias

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +Johan Fonseca Sanchez No entiendo la pregunta.

    • @sfhj8435
      @sfhj8435 8 лет назад

      Osea dpnde usted esplico bien lo de hacer una pelota que se moviera. Gracias y disculpe la pregunta

    • @sfhj8435
      @sfhj8435 8 лет назад +1

      Osea el video

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +Johan Fonseca Sanchez Pues no lo recuerdo. Tengo 195 vídeos en este curso y 719 en todo el canal. Me resulta imposible donde comenté una cosa u otra. Te paso la lista de reproducción para que lo busques tú si te sientes con ganas: ruclips.net/p/PLU8oAlHdN5BktAXdEVCLUYzvDyqRQJ2lk
      Un saludo

    • @sfhj8435
      @sfhj8435 8 лет назад

      gracias

  • @maxvilcas4536
    @maxvilcas4536 7 лет назад

    Buen vídeo Felicitaciones si seria tan amable de poder obtener el código terminado.

  • @ricardolopez7506
    @ricardolopez7506 7 лет назад +1

    Buenas, estoy aprendiendoel algoritmo de dekker, semaforos, fork join y esas cosas sirve para algo ? porque no encuentro donde aplicarlo

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +1

      Sí, claro que sirve.... La necesidad surge cuando uno programa no una, sino muchas aplicaciones que manejan Threads. Entonces es cuando surgen los conflictos y donde entran en juego los conceptos que tú mencionas. En este curso no se ve ningún ejemplo donde se necesiten, pero es que se ven solo dos o tres ejemplos. Me gustaría abarcar más temas pero entonces el curso se me va a los 500 vídeos. Un saludo!!

    • @ricardolopez7506
      @ricardolopez7506 7 лет назад

      Genial, gracias!! muy bueno el canal me subscribo

  • @abogadadeldiablo8285
    @abogadadeldiablo8285 7 лет назад +2

    Hola.
    Lo miré 4 veces y sigo sin entender. La implementación está sólo enfocada en ese código, no se explica en términos generales cómo se usa. Hubiese sido interesante que lo explicaras con un ejemplo más sencillo y que también lo hubieses explicado genéricamente.
    Aún así tus otros videos fueron útiles. xD
    Saludos.

    • @miguelangelvasquezgarcia8235
      @miguelangelvasquezgarcia8235 4 года назад +1

      Tendrias que ver todos sus videos hasta este punto; Todo lo visto lo ha dejado en los 167 anteriores
      Animos!!