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()方法的顺序不一致:

  • 相关阅读:
    conrtex 和 ARM 的关系
    C语言中的内存分配深入
    钳位电路
    向量中断与非向量中断的区别
    Freescale PowerPC处理器优势
    路由器端口映射,远程桌面连接端口映射+花生壳=让人访问你个人服务器或WEB站点
    linux 下用G++编译C++
    Javascript基础知识篇(1): 初识Javascript
    Javascript实战应用篇(3):动态加载JS和CSS文件
    Javascript高级技术篇(1):搭建JS框架类库
  • 原文地址:https://www.cnblogs.com/hujingwei/p/8097735.html
Copyright © 2011-2022 走看看