Тёмный
No video :(

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

pildorasinformaticas
Подписаться 806 тыс.
Просмотров 177 тыс.
50% 1

En este vídeo comenzamos a ver la programación de Threads o hilos. Esto nos permitirá crear programas de Java que sean capaces de ejecutar varias tareas de forma simultánea. Para descargar el archivo de ejemplo del vídeo: www.pildorasin...

Опубликовано:

 

20 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 200   
@pildorasinformaticas
@pildorasinformaticas Год назад
✅✅ ✅ ✅ ✅ 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 лет назад
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 лет назад
Muchas gracias por el comentario. Me alegro de que te gusten los vídeos. Un cordial saludo!!
@Persiano_
@Persiano_ 5 лет назад
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ú
@alex351207
@alex351207 7 лет назад
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.
@pildorasinformaticas
@pildorasinformaticas 7 лет назад
Me alegro!! Gracias por seguir mis vídeos. Un saludo
@elnorte2
@elnorte2 9 лет назад
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.
@OscarDiaz-fr3ss
@OscarDiaz-fr3ss 5 лет назад
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(); }
@pildorasinformaticas
@pildorasinformaticas 5 лет назад
Gracias por el aporte. Un saludo!
@rozoneri
@rozoneri 8 лет назад
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 лет назад
+Easylisimo Gracias por tu comentario. Me alegro de que te guste. Un saludo
@salvadorcano553
@salvadorcano553 2 года назад
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.
@papaprimerizoes3548
@papaprimerizoes3548 2 года назад
Muy buenos apuntes Salvador. Muchas gracias
@jugarprogramando8091
@jugarprogramando8091 6 лет назад
¡¡¡¡¡....168 videos...!!!!! Gracias por tomarte el tiempo y la paciencia al compartir tus conocimientos.
@iNandool
@iNandool 4 года назад
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!
@fernandoreyes9205
@fernandoreyes9205 8 лет назад
Solo puedo decir wow, es un curso excelente, me da tristeza no haber entrado antes a sus vídeos, mis felicitaciones!
@oscar10051987
@oscar10051987 8 лет назад
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 8 лет назад
+Oscar Antonio Rubí Ramírez Gracias !! me alegro de que el curso haya sido de utilidad. Un saludo
@antoniocarrasco3114
@antoniocarrasco3114 2 года назад
Me has salvado la vida, tengo este viernes un examen de hilos y lo estoy entendiendo todo muy bien Gracias Juan.
@guillermoviscoponticelli
@guillermoviscoponticelli 5 лет назад
Que buen ejemplo. Los años que he querido saber esto. Increíble Juan, 100% agradecido.
@pildorasinformaticas
@pildorasinformaticas 5 лет назад
Gracias por el comentario. Me alegro de que te guste. Un saludo!
@flan_02
@flan_02 5 лет назад
finalice la primer parte del curso en 4 meses, excelente trabajo sr. Juan !
@michelbenites1854
@michelbenites1854 5 лет назад
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.
@billyretamal8932
@billyretamal8932 8 лет назад
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 8 лет назад
+Billy Retamal Muchas gracias. Me alegro de que sea de utilidad. Un saludo
@marioherrera2055
@marioherrera2055 4 года назад
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
@pildorasinformaticas
@pildorasinformaticas 4 года назад
Un saludo Mario
@Mrleopola
@Mrleopola 9 лет назад
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 лет назад
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)
@nicotoobebello6386
@nicotoobebello6386 5 лет назад
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
@pildorasinformaticas
@pildorasinformaticas 5 лет назад
Gracias por tus comentario y aportes. Un saludo!
@papaprimerizoes3548
@papaprimerizoes3548 2 года назад
Muchas gracias por compartir tus conocimientos Juan. Me han ayudado mucho tanto en las clases como en el trabajo. Un abrazo
@ignacioantoniojeriagarrido6877
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!
@samuelcd80
@samuelcd80 9 лет назад
Solo quería felicitarte por el curso y darte las gracias por compartir tus conocimientos.
@pildorasinformaticas
@pildorasinformaticas 9 лет назад
+Samuel Castro Gracias !! Un saludo
@jesusmunoz1
@jesusmunoz1 7 месяцев назад
Excelente curso maestro, muchisimas gracias por todo, me ha ayudado muchisimo. Saludos desde Venezuela.
@walterjosesuarezdelacruz1495
@walterjosesuarezdelacruz1495 4 года назад
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.
@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.
@arturoguerrero8958
@arturoguerrero8958 9 лет назад
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 лет назад
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
@yacoobsc.m3269
@yacoobsc.m3269 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"); }
@pildorasinformaticas
@pildorasinformaticas 8 лет назад
+Rey Relampago Cortina Luego lo pruebo. Seguro que me río un rato ;)
@TACHISOEN
@TACHISOEN 7 лет назад
Esta muy padre!!! Me he quedado sorprendido.
@yacoobsc.m3269
@yacoobsc.m3269 7 лет назад
Me alegro 😉😆
@victorhugogamboapabon5453
@victorhugogamboapabon5453 7 лет назад
Esta Genial !!!
@benatn
@benatn 6 лет назад
wooooW! te quedo re bueno!! esta genial, muy creativo
@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.
@alejo3157
@alejo3157 4 года назад
Excelente clase, por favor siga subiendo mas conocimientos. gracias.
@albertorivera8428
@albertorivera8428 5 лет назад
Eh esperado con ansias llegar hasta aqui
@harrisonmartinez4531
@harrisonmartinez4531 7 лет назад
Buen inicio de la segunda parte profesor, gracias!! le sigo desde el primer vídeo he aprendido mucho!!
@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
@SoySaavedra
@SoySaavedra 4 месяца назад
Clarísimo Juan, gracias!
@argentina1387
@argentina1387 4 года назад
Gracias, muchas gracias profesor!!
@yelsinpulidohermitano3606
@yelsinpulidohermitano3606 8 лет назад
un gran talento para enseñar thanks :3
@pildorasinformaticas
@pildorasinformaticas 8 лет назад
+yelsin pulido hermitaño Gracias !! Un saludo
@edwardmuri5895
@edwardmuri5895 4 года назад
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
@DcAGame
@DcAGame 7 лет назад
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
@nobody_AskedMe
@nobody_AskedMe 2 года назад
Muchas gracias Juan!
@memejamas3818
@memejamas3818 2 года назад
gracias profe esta clase se puso buena
@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.
@estbm1
@estbm1 5 лет назад
Siempre con información clara y directa, muchas gracias :D excelente profesor como siempre. Saludos
@ssmatiuri
@ssmatiuri 9 лет назад
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.
@pablofonseca446
@pablofonseca446 5 лет назад
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.
@baraobrincadeira
@baraobrincadeira 5 лет назад
Sos el Mejor!. Te felicito por tus cursos!.
@cristhianjonathangomezramo5301
muchas gracias por su video, es el primero que veo y esta muy bueno, me veré todos gracias!
@TheMigatitomiau
@TheMigatitomiau 6 лет назад
El curso es excelente, felicidades, sigue adelante...
@cristiannunez2343
@cristiannunez2343 6 лет назад
JAJAJA como me sacaste una risa cuando dijiste nos podemos morir al esperar que termine JAJAJA
@andresrivera525
@andresrivera525 6 лет назад
Muchas gracias, que buen profesor , me ha servido de mucho
@teldatamcy5656
@teldatamcy5656 5 месяцев назад
Excelente!!!, Gracias. Chévere cambur 🍌!!!!
@lugburz-shak4629
@lugburz-shak4629 3 года назад
gracias esto lo entiendo mejor que una metafora con un aeropuerto
@MGGF95
@MGGF95 8 лет назад
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 8 лет назад
+Mario Grajeda Hola !! Gracias por el comentario. Me alegro de que te gusten. Un saludo
@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.
@randallbiermann2525
@randallbiermann2525 5 лет назад
metodo muy bueno para establecer láminas principales en un JFrame es el instanciaJFrame.setContentPane(lamina);
@gonzaloalonsorodriguez4929
@gonzaloalonsorodriguez4929 Месяц назад
Un vídeo increible
@coronadev3804
@coronadev3804 4 года назад
Súper Ejemplo! Muchas gracias =)
@cristiangs2307
@cristiangs2307 3 года назад
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
@stevenrodriguezgarro1799
@stevenrodriguezgarro1799 7 лет назад
Muy bueno el vídeo, no tienes algún tutorial de programación en Android, explicas muy bien
@pildorasinformaticas
@pildorasinformaticas 7 лет назад
Gracias por el comentario. Mira este enlace: ru-vid.com/group/PLU8oAlHdN5Bkn-KS1sRFlSEnXXcAtAJ9P Un saludo!!
@sueocho8489
@sueocho8489 3 года назад
Hola que taaaal , la mejor intro
@luisrivera-lf5gr
@luisrivera-lf5gr 5 лет назад
Gracias por compartir tus conocimientos :)
@xepcperez3061
@xepcperez3061 2 года назад
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????
@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
@juanmigarcia393
@juanmigarcia393 9 лет назад
Eres el mejor
@juanmanuelmagnaterra7668
@juanmanuelmagnaterra7668 5 лет назад
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 5 лет назад
al final quise poner ".....de tal forma que da la sensación de que se ejecutaran VARIAS a la vez..."
@pildorasinformaticas
@pildorasinformaticas 5 лет назад
Es correcto lo que dices pero no quería afinar tanto. Un saludo!
@realsamu
@realsamu 8 лет назад
muchas gracias amigo , un saludo
@felipgp7677
@felipgp7677 9 лет назад
Excelente profe!
@pildorasinformaticas
@pildorasinformaticas 8 лет назад
+Phil lip Gracias !! Un saludo
@guillermovazquezdelara7623
@guillermovazquezdelara7623 2 года назад
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
@hebersolisbravo4502
@hebersolisbravo4502 9 лет назад
Chevere, muy claro, :)
@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!!
@manolopajaro_videos5894
@manolopajaro_videos5894 3 года назад
excelente video bien explicado
@FranciscoXavierRojasCeli
@FranciscoXavierRojasCeli 5 лет назад
A los que están muy agradecidos ... ¿sabian que pueden donar? lol... bueno quienes tengan recursos...
@miguelangelvasquezgarcia8235
@miguelangelvasquezgarcia8235 4 года назад
Como se puede haecr donaciones??
@peskao023
@peskao023 3 года назад
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.
@vNymeria
@vNymeria 4 года назад
Lo que daría para que fueras mi profesor.
@cristiandiaz553
@cristiandiaz553 Год назад
Vengo del futuro a ver el vídeo sin haber visto el resto de clases... Deséenme suerte.
@danielmercadoalvarado4155
@danielmercadoalvarado4155 8 лет назад
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 : ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-qXhc4wbDaqU.html Y sucesivos. Un saludo!!
@damiva
@damiva 7 лет назад
por fin !! matemáticas te utilizo xd
@Dotaproplayer
@Dotaproplayer 6 лет назад
ste men :v
@sfhj8435
@sfhj8435 8 лет назад
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 лет назад
Profe buen video,un pregunta cuantos videos quedan para empezar con la bases de datos???
@pildorasinformaticas
@pildorasinformaticas 9 лет назад
black davo Hola !! Calculo que unos 25 o 30. Un saludo
@richardduran7113
@richardduran7113 9 лет назад
Excelente
@pildorasinformaticas
@pildorasinformaticas 9 лет назад
Richard Duran Gracias !!
@marcossalas7416
@marcossalas7416 4 года назад
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
@yourfavouriteman
@yourfavouriteman 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?
@thrafiker10
@thrafiker10 9 лет назад
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.
@maotoledos
@maotoledos 6 лет назад
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
@thebryant6344
@thebryant6344 5 лет назад
Quisiera que hagas un curso de JavaFx :c
@pildorasinformaticas
@pildorasinformaticas 5 лет назад
Estoy en ello. Espero poder subirlo en breve. Un saludo!
@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
@nitagabriel4340
@nitagabriel4340 4 года назад
import java.awt.*; //El programa import java.awt.event.*; import java.awt.geom.*; import java.util.*; import javax.swing.*; public class UsoTreads { public static void main(String[] args) { // TODO Auto-generated method stub JFrame marco=new MarcoRebote(); marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); marco.setVisible(true); } } //Movimiento de la pelota----------------------------- class Pelota{ //Mueve la pelota invirtiendo posicion si choca con limites public void mueve_pelota(Rectangle2D limites){ x+=dx; y+=dy; //cu astea 2 incrementam la cordenatas de la pelota if(x=limites.getMaxX()){ x=limites.getMaxX() - TAMX; dx=-dx; } if (y=limites.getMaxY()){ y=limites.getMaxY()-TAMY; dy=-dy; } } //Forma de la pelota en su posicion inical public Ellipse2D getShaped(){ return new Ellipse2D.Double(x,y,TAMX,TAMY); } private static final int TAMX=15; private static final int TAMY=15; private double x=0; private double y=0; private double dx=1; private double dy=1; } //Lamina que dibuja la pelota class LaminaPelota extends JPanel{ public void add(Pelota b){ pelotas.add(b); } public void paintComponent (Graphics g){ super.paintComponent(g); Graphics2D g2=(Graphics2D)g; for (Pelota b: pelotas){ g2.fill(b.getShaped()); } } private ArrayList pelotas=new ArrayList(); } //Marco con lamina y botones class MarcoRebote extends JFrame { public MarcoRebote (){ setBounds(600,300,400,350); setTitle("Rebotes"); lamina=new LaminaPelota(); add(lamina,BorderLayout.CENTER); JPanel laminaBotones=new JPanel(); ponerBoton(laminaBotones,"Dale", new ActionListener(){ public void actionPerformed(ActionEvent evento ){ cimenza_el_juego(); } }); ponerBoton(laminaBotones,"Salir",new ActionListener(){ public void actionPerformed(ActionEvent evento){ System.exit(0); } }); add(laminaBotones,BorderLayout.SOUTH); } //ponemos botones public void ponerBoton(Container c, String titulo,ActionListener oyente){ JButton boton=new JButton(titulo); c.add(boton); boton.addActionListener(oyente); } //Anadir pelota y la bota 1000 veces public void cimenza_el_juego(){ Pelota pelota=new Pelota(); lamina.add(pelota); for (int i=1;i
@jorgehessle8055
@jorgehessle8055 7 лет назад
Hola Juan, que tal...puede ser que la forma de seguir aprendiendo Java después de haber adquirido cierto nivel sea leyendo códigos de programas ya hechos? Gracais y felicitaciones!
@pildorasinformaticas
@pildorasinformaticas 7 лет назад
Claro que si. Una vez realizado un curso, la única forma de seguir aprendiendo es leyendo códigos y practicando con nuevos códigos. El hacer un curso por si solo es solo el primer paso para conseguir comprender un lenguaje de programación. Un saludo!!
@jarcdday
@jarcdday 4 года назад
20:46 soy serio con estas cosas pero morí con PelotaHilos xD :v
@MsBriansteve
@MsBriansteve 6 лет назад
Feliz día del maestro atrasado.. Y como seria un botón para que en vez de salir quite 1 pelota?
@giancarloandrebravoabanto7091
@giancarloandrebravoabanto7091 6 лет назад
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
@rubenfranco7690
@rubenfranco7690 8 лет назад
Quisiera preguntar, se sabe cual fue la excepción que salió en el minuto 30:07 y cual fue su origen? Excelente video, bastante informativo, gracias.
@Alex75JR
@Alex75JR 8 лет назад
Esta es la excepción que me sale a mí cuando clicko muchas veces: Exception in thread "Thread-3" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Unknown Source) at java.util.ArrayList$Itr.next(Unknown Source) at LaminaPelota.paintComponent(UsoThreads.java:108) at javax.swing.JComponent.paint(Unknown Source) at PelotaHilos.run(UsoThreads.java:231) at java.lang.Thread.run(Unknown Source)
@zkaiva34
@zkaiva34 7 лет назад
y en lenguaje de un estudiante de primer semestre de ing. que quiere decir eso? :v
@rubenfranco7690
@rubenfranco7690 7 лет назад
Ya lo pude leer, dice concurrenmodificationexception, en palabras mas sencillas, en Java cuando uno itera o recorre arreglos de datos, a dicho arreglo no se le pueden realizar modificaciones hasta que termine de ser iterado, pero la verdad en este casos no sé que tenga que ver, posiblemente pueda ser algún problema de memoria en el PC y que haga que la máquina virtual de java se comporte de manera inesperada al enviar hilos tan rápidamente.
@cbluis7567
@cbluis7567 8 лет назад
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 8 лет назад
+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 8 лет назад
+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)
@frey.o.o
@frey.o.o 4 года назад
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
@maxvilcas4536
@maxvilcas4536 7 лет назад
Buen vídeo Felicitaciones si seria tan amable de poder obtener el código terminado.
@jorgeandres8819
@jorgeandres8819 7 лет назад
hola puedes explicar sobre listas simplemente ligadas muchas gracias
@pildorasinformaticas
@pildorasinformaticas 7 лет назад
Vídeos del 179 al 189 (si no recuerdo mal). Un saludo!!
@s3ktor469
@s3ktor469 3 года назад
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?
@johannsamaya3689
@johannsamaya3689 6 лет назад
Hola. Muy buen curso. Donde podría ver el código para estudiar mejor?
@STEVEN51362
@STEVEN51362 6 лет назад
Amigo, podrias colocar en que video explicas la logica de la Clase Pelota? Por favor
@edersorto7346
@edersorto7346 4 года назад
:D threads ... Gracias
@sfhj8435
@sfhj8435 8 лет назад
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 лет назад
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: ru-vid.com/group/PLU8oAlHdN5BktAXdEVCLUYzvDyqRQJ2lk Un saludo
@sfhj8435
@sfhj8435 8 лет назад
gracias
Далее
Multithreading in Java Explained in 10 Minutes
10:01
Просмотров 909 тыс.
КТО ЛЮБИТ ГРИБЫ?? #shorts
00:24
Просмотров 878 тыс.
Asincronicidad en JAVA / THREADS o HILOS
10:58
Просмотров 1,7 тыс.
The Tragedy of systemd
47:18
Просмотров 1,1 млн
Rust and RAII Memory Management - Computerphile
24:22
Просмотров 224 тыс.
КТО ЛЮБИТ ГРИБЫ?? #shorts
00:24
Просмотров 878 тыс.