• 多线程


    说线程之前 ,先说什么是进程,进程是正在运行的程序,确切的来说是当一个程序进入内存中运行,

    线程是进程中的一个执行单元(执行路径),负责当前进程中程序的执行,
    一个进程中至少有一个线程。一个进程中是可以有多个线程的,
    这个应用程序也可以称之为多线程程序。

    简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程

    来个例子:

    public class Demo {
    public static void main(String[] args) {
    System.out.println(0/0);
    function();
    System.out.println(Math.abs(-9));
    }

    public static void function(){
    for(int i = 0 ; i < 10000;i++){
    System.out.println(i);
    }
    }
    }

    上面这个例子 直接报错,因为0/0是错误的 这个程序是一条main走到底的,但是第一个即错了 所以后面的程序无法执行,这个就是单线程

    生活中也有单线程的例子:单线程程序:即,若有多个任务只能依次执行。当上一个任务执行结束后,下一个任务开始执行。如去            网吧上网,网吧只能让一个人上网,当这个人下机后,下一个人才能上网。

    其实,多线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的使用率更高。

    java的虚拟机支持多线程

    那多线程怎么来写呢,这里面得先说Thread类

    Thread类介绍
    A:Thread类介绍:Thread是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。
    发现创建新执行线程有两种方法。
    a:一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。创建对象,开启线程。run方法相当于其他线程的main方法。
    b:另一种方法是声明一个实现 Runnable 接口的类。该类然后实现 run 方法。然后创建Runnable的子类对象,传入到某个线程的构造方法中,开启线程。

    例子如下

    public class ThreadDemo {
    public static void main(String[] args) {
    SubThread st = new SubThread();
    SubThread st1 = new SubThread();
    st.start();
    st1.start();
    for(int i = 0; i < 50;i++){
    System.out.println("main..."+i);
    }
    }
    }
    /*
    * 定义子类,继承Thread
    * 重写方法run
    */
    public class SubThread extends Thread{
    public void run(){
    for(int i = 0; i < 50;i++){
    System.out.println("run..."+i);
    }
    }
    }

  • 相关阅读:
    GCD HDU
    Finding Lines UVALive
    Chinese Mahjong UVA
    DNA Evolution CodeForces
    String Reconstruction (并查集)
    Number Cutting Game HDU
    Paint the Wall ZOJ
    Star sky CodeForces
    Haunted Graveyard ZOJ
    GuGuFishtion HDU
  • 原文地址:https://www.cnblogs.com/lijun6/p/9380048.html
Copyright © 2020-2023  润新知