• Java学习基础- 线程


    一、学习线程需要清楚的三个概念

         1.进程:进程是一个静态的概念

         2.线程:一个进程里边有一个主线程叫main()的方法,是一个程序里边的,一个进程里边不同的执行路径。

         3.在同一时间点,一个CPU只执行一个线程。因为CPU的运行速度很快,因此我们看起来就像多线程一样。

           什么才是真正的多线程?如果你的机器是双CPU或者双核,这确确实实是多线程。

    二、线程的创建和启动

     1.利用实现Runnable接口创建和启动新线程的案例

    package cn.galc.test;
    
    public class TestThread1{
        public static void main(String args[]){
            Runner1 r1 = new Runner1();//这里new了一个线程类的对象出来
            //r1.run();//这个称为方法调用,方法调用的执行是等run()方法执行完之后才会继续执行main()方法
            Thread t = new Thread(r1);//要启动一个新的线程就必须new一个Thread对象出来
            //这里使用的是Thread(Runnable target) 这构造方法
            t.start();//启动新开辟的线程,新线程执行的是run()方法,新线程与主线程会一起并行执行
            for(int i=0;i<10;i++){
                System.out.println("maintheod:"+i);
            }
        }
    }
    /*定义一个类用来实现Runnable接口,实现Runnable接口就表示这个类是一个线程类*/
    class Runner1 implements Runnable{
        public void run(){
            for(int i=0;i<10;i++){
                System.out.println("Runner1:"+i);
            }
        }
    }

    2.继承Thread类,重写run方法来创建和启动新线程

    package cn.galc.test;
    
    public class TestThread1{
        public static void main(String args[]){
            Runner1 r1 = new Runner1();//这里new了一个线程类的对象出来
            //r1.run();//这个称为方法调用,方法调用的执行是等run()方法执行完之后才会继续执行main()方法
            Thread t = new Thread(r1);//要启动一个新的线程就必须new一个Thread对象出来
            //这里使用的是Thread(Runnable target) 这构造方法
            t.start();//启动新开辟的线程,新线程执行的是run()方法,新线程与主线程会一起并行执行
            for(int i=0;i<10;i++){
                System.out.println("maintheod:"+i);
            }
        }
    }
    /*定义一个类用来实现Runnable接口,实现Runnable接口就表示这个类是一个线程类*/
    class Runner1 implements Runnable{
        public void run(){
            for(int i=0;i<10;i++){
                System.out.println("Runner1:"+i);
            }
        }
    }

    注意:使用这两种方法开辟新的线程时,优先考虑使用实现Runnable接口的方式去开辟新的线程,因为接口的实现可以实现多个,而类的继承只能是单继承。

  • 相关阅读:
    Java测试用例简介
    Hive使用入门
    Java中的GetOpt操作
    Tomcat的文件列表服务
    Hadoop MapReduce 初步学习总结
    hadoop集群调优-OS和文件系统部分
    02怎么学数据结构?
    01为什么学习数据结构?
    MySQL实战06の锁
    MySQL实战05の索引(下)
  • 原文地址:https://www.cnblogs.com/linzhijie45/p/6040324.html
Copyright © 2020-2023  润新知