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

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

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

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

    来个例子:

    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);
    }
    }
    }

  • 相关阅读:
    Object-C,NSSet,不可变集合
    NYIST 860 又见01背包
    NYIST 1070 诡异的电梯【Ⅰ】
    HDU 1542 Atlantis
    HDU 4756 Install Air Conditioning
    CodeForces 362E Petya and Pipes
    HDU 4751 Divide Groups
    HDU 3081 Marriage Match II
    UVA 11404 Palindromic Subsequence
    UVALIVE 4256 Salesmen
  • 原文地址:https://www.cnblogs.com/lijun6/p/9380048.html
Copyright © 2011-2022 走看看