zoukankan      html  css  js  c++  java
  • java中的多线程

    一个java程序实际上是一个JVM进程,JVM进程用一个主线程来执行main()方法,在main()方法内部,我们又可以启动多个线程。此外,JVM还有负责垃圾回收的其他工作线程等。

    第一种:继承Thread类

    public class MyThread{
        public static void main(String[] args) {
            final Thread t = new testThread();
            t.start(); // 启动新线程
            System.out.println("start main thread!");
    
            
        }
    }
    
    class testThread extends Thread {
        @Override
        public void run() {
            System.out.println("start new thread!");
        }
    }

    运行测试

    package pack_10;
    
    public class testThread {
        public static void main(String[] args) {
            System.out.println("main start...");
            Thread t = new Thread() {
                public void run() {
                    System.out.println("thread run...");
                    try {
                        Thread.sleep(10);
                    } catch (InterruptedException e) {}
                    System.out.println("thread end.");
                }
            };
            t.start();
            try {
                Thread.sleep(20);
            } catch (InterruptedException e) {}
            System.out.println("main end...");
        }
    }

    运行结果

    注意:调用run()方法和调用start()是不一样的!

    public class MyThread{
        public static void main(String[] args) {
            final Thread t = new testThread();
            t.start(); // 启动新线程,start为同时执行
            for (int i = 0; i < 10; i++) {
                System.out.println("start main thread!");
            }
        }
    }
    
    class testThread extends Thread {
        @Override
        public void run() {
             for (int i = 0; i < 10; i++) {
                System.out.println("start run thread!");
            }
        }
    }

    输出结果:

    可以看到上述是交替执行的。因此,调用普通方法例如调用run()方法是普通调用,会先执行run方法,依然是主线程执行,而调用start方法则会开起子线程,从此主线程和子线程会并行交替执行。

    第二种方法:通过runnable接口实现多线程

    package com.lipu.demo01;
    
    //创建线程方式2:现实重写runnable接口,重写run方法,执行线程需要丢入runnable接口实现类
    public class TestThread03 implements Runnable {
        @Override
        public void run() {
            for (int i = 0; i < 200; i++) {
                System.out.println("我在看代码。。。"+i);
    
            }
        }
        public static void main(String[] args) {
            //创建runnable接口的实现类对象
            TestThread03 testThread03=new TestThread03();
            //创建线程对象,通过线程对象来开启我们的线程,代理 简单理解通过Thread实现runnable接口
    //        Thread thread=new Thread(testThread03);
    //        thread.start();
            new Thread(testThread03).start();
            for (int i = 0; i < 200; i++) {
                System.out.println("我在学习多线程。。。"+i);
    
            }
        }
    
    }
  • 相关阅读:
    网页媒体播放利器
    iframe截取网站部分内容实现思路及代码
    网站如何添加访客统计代码
    Javascript写入txt和读取txt文件示例
    常见JS挂马方法及如何防止网站被黑客挂马?
    最新挂木马的10大操作方法
    Javascript教程:js异步模式编程的4种解决方法
    JavaScript对象属性的基础教程指南
    jsp中的JSTL与EL表达式用法
    Java 连接 SqlServer工具类
  • 原文地址:https://www.cnblogs.com/lipu12281/p/12187342.html
Copyright © 2011-2022 走看看