JAVA多线程实例代码

JAVA多线程实例代码

代码块1:阐明多线程机制


package Thread_demo;

public class Example_one1 {
   public static void main(String[] args) {
       //调用另一个类,开启新的线程运行
       //创建Thread类的子类的对象
     MyThread mythread=new MyThread();
     mythread.start();
     //对象调用start方法开启新的线程,并不是调用run方法
     /*为实现多线程的效果,在主线程中写上一段代码看执行结果
      * run方法中的语句和main方法中的语句交替运行*/
     for (int i = 0; i < 100; i++) {
        System.out.println("--->main方法中输出的值:"+i);
    }
}
}

//自定义类,继承Thread,实现多线程
class MyThread extends Thread   //继承Thread
{
    //重写run方法
    @Override
    public void run() {

        for (int i = 0; i < 100; i++) {
        //将要执行的代码写下run方法中   
            System.out.println("--->run方法中输出的值:"+i);
        }

    }

}

代码块2:证明JVM是多线程->垃圾回收机制级别最低


package Thread_demo;
/*证明JVM是多线程的*/
public class Example_two2 {
       public static void main(String[] args) {
    for (int i = 0; i < 1000000; i++) {
        new Demo();
    }
    for (int i = 0; i < 10000; i++) {
        System.out.println("------>我是主线程的执行代码!");
    }
}
}

class Demo {
    @Override
    protected void finalize() throws Throwable {
        System.out.println("调用垃圾回收机制,回收不被引用的对象!");
    }
}

以下实现多线程的四种方法:

代码块3:匿名内部类实现多线程==>Runable接口方法


package Thread_demo;

public class InnerRunable_1 {

/*  匿名内部类实现多线程==>Runable接口方法
 *  结果:-->内部类线程与main线程交替运行
 * */

    public static void main(String[] args) {

        //内部类
        new Thread(new Runnable() { //1、创建Runable接口内部类对象

            @Override
            public void run() {  //2、重写run方法
                for (int i = 0; i < 1000; i++) {//3、自定义执行语句
                    System.out.println("内部类线程报数:"+i);
                }
                }
        }).start();


        for (int i = 0; i < 1000; i++) {
            System.out.println("main线程报数:"+i);
        }

    }

}

代码块4:匿名内部类实现多线程===>Thread类方法


package Thread_demo;

public class InnerThread {

    /*匿名内部类实现多线程===>Thread类方法*/

    public static void main(String[] args) {

        //1、创建Thread匿名内部类对象
        Thread thread=new Thread(){
            //2、重写run方法
            @Override
            public void run() {
            //3、自定义执行语句
                for (int i = 0; i < 1000; i++) {
                    System.out.println("内部类线程报数:"+i);
                }
            }
        };
        //开启执行线程
        thread.start();
        for (int i = 0; i < 1000; i++) {
            System.out.println("main线程报数:"+i);
        }

    }

}


代码块5:创建新的线程:方法1==>继承Thread类

代码块5:创建新的线程:方法2==>实现Runnable接口


package Thread_demo;

public class Mythread_2Mathds {

    public static void main(String[] args) {
        //创建方法1的对象
        Mythread_thread firstThread=new Mythread_thread();
        firstThread.start();//开启线程
        System.out.println("********************************");

        //创建方法2的对象
        Mythread_run secondThread=new Mythread_run();
        //创建Thread类对象,把方法2类对象当做Thread类的构造方法的参数传递进去
        Thread second=new Thread(secondThread);
        second.start();//Thread对象开启新的线程
        System.out.println("********************************");

        //main线程方法
        for (int i = 0; i < 1000; i++) {
            System.out.println("main线程报数:"+i);
        }
    }

}
/*创建新的线程:方法1==>继承Thread类*/
class Mythread_thread extends Thread{//1、继承Thread
    @Override
    public void run() {  //2、实现run方法
        for (int i = 0; i < 1000; i++) {//3、自定义执行语句
            System.out.println("继承Thread类 --线程报数:"+i);
        }
    }

}

/*创建新的线程:方法2==>实现Runnable接口*/
class Mythread_run implements Runnable{//1、自定义类实现Runnable接口
    @Override
    public void run() {//2、重写run方法
        for (int i = 0; i < 1000; i++) {//3、自定义执行语句
            System.out.println("实现Runnable接口--线程报数:"+i);
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值