zoukankan      html  css  js  c++  java
  • Java线程总结(一)

    首先,先贴上一个简单的线程实例:

    public class MyThread  extends Thread{
        @Override
        public void run(){
            try {
                for (int i = 0; i < 10; i++){
                    int time = 1000;
                    Thread.sleep(time);
                    System.out.println("run = "  + Thread.currentThread().getName());
                }
            }catch (InterruptedException e){
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            MyThread myThread = new MyThread();
            myThread.setName("MyThread");
            myThread.start();
            try{
                for (int i = 0; i < 10; i++){
                    int time = 1000;
                    Thread.sleep(time);
                    System.out.println("main = " + Thread.currentThread().getName());
                }
            }catch (InterruptedException e){
                e.printStackTrace();
            }
        }
    }

    运行结果如下:

    由运行结果可以看出,程序中有两个线程,一个是主线程,另一个是我手动创建的线程,主线程都是jvm创建的。

    线程执行start()方法不代表线程的启动顺序,如下例:

    public class MyThread  extends Thread{
    
        private int i;
    
        public MyThread(int i){
            super();
            this.i = i;
        }
    
        @Override
        public void run(){
            System.out.println(i);
        }
    
        public static void main(String[] args) {
            MyThread thread1 = new MyThread(1);
            MyThread thread2 = new MyThread(2);
            MyThread thread3 = new MyThread(3);
            MyThread thread4 = new MyThread(4);
            MyThread thread5 = new MyThread(5);
            MyThread thread6 = new MyThread(6);
            MyThread thread7 = new MyThread(7);
            MyThread thread8 = new MyThread(8);
            MyThread thread9 = new MyThread(9);
            MyThread thread10 = new MyThread(10);
            thread1.start();
            thread2.start();
            thread3.start();
            thread4.start();
            thread5.start();
            thread6.start();
            thread7.start();
            thread8.start();
            thread9.start();
            thread10.start();
        }
    }

    运行结果如下,执行顺序与调用start()方法的顺序不一致:

  • 相关阅读:
    葵花宝典,参考学习网站收藏
    安卓工具
    马帮
    C89:vs输出调试信息
    OSG:中级篇 拖拽器类
    OSG:幼儿园篇 第六章 碰撞检测类
    OSG:幼儿园篇 第三章 节点坐标变换类
    OSG:幼儿园篇 第五章 界面交互类
    C++11:智能指针
    OSG:幼儿园篇 第四章 节点回调类
  • 原文地址:https://www.cnblogs.com/hujingwei/p/8097735.html
Copyright © 2011-2022 走看看