//注意:线程开启不一定立即执行,由CPU决定publicclassThread1extendsThread{@Overridepublicvoidrun(){for(int i =0; i <20; i++){
System.out.println("我在学Java--"+i);}}publicstaticvoidmain(String[] args){
Thread1 thread1 =newThread1();
thread1.start();for(int i =0; i <20; i++){
System.out.println("我在学习多线程--"+i);}//"我在学Java"穿插在"我在学习多线程"中,多线程实现了}}
publicclassTestThread2implementsRunnable{@Overridepublicvoidrun(){//run方法线程体for(int i =0; i <20; i++){
System.out.println("我在学Java--"+i);}}publicstaticvoidmain(String[] args){//创建runnable接口的实现类对象
TestThread2 testThread2 =newTestThread2();//创建线程对象,通过线程对象来开启线程,这叫代理// Thread thread = new Thread(testThread2);// thread.start();newThread(testThread2).start();for(int i =0; i <20; i++){
System.out.println("我在学习多线程--"+i);}}}
用runnable实现小练习,只需实现接口,改变主函数里对象实现,结果一样
public class TestThread1 implements Runnable
public static void main(String[] args) {
TestThread1 testThread1 = new TestThread1("https://img.ivsky.com/img/tupian/co/202007/11/niupai-037.jpg","美食一.jpg");
TestThread1 testThread2 = new TestThread1("https://img.ivsky.com/img/tupian/co/202007/11/niupai.jpg","美食二.jpg");
TestThread1 testThread3 = new TestThread1("https://img.ivsky.com/img/tupian/co/202007/11/shutiao-012.jpg","美食三.jpg");
new Thread(testThread1).start();
new Thread(testThread2).start();
new Thread(testThread3).start();
}
多线程01文章目录多线程01一、Thread类练习:多线程同步下载图片二、实现Runnable小结:三、初见并发问题小案例:龟兔赛跑一、Thread类自定义线程类继承Thread类重写run方法,编写线程执行体创建线程对象,调用start方法启动线程//注意:线程开启不一定立即执行,由CPU决定public class Thread1 extends Thread{ @Override public void run() { for (int i = 0;