zoukankan      html  css  js  c++  java
  • 线程简述(Thread)

    线程:

      进程是一个正在运行的程序,例如电脑上现在在运行的qq,浏览器,电脑管家,这些都是进程

      线程就是每一个进程中的一个执行单元,每一个进程至少一个线程,可以有多个线程,例如浏览器上每一个打开的网页都是一个线程,电脑管家打开后,可以一边体检一边杀毒,一边清理垃圾,在这里边,体检、杀毒、清理垃圾每一个都是一个线程。

      一个程序运行至少一个进程,一个进程可以包含多个线程

      线程的具体体现:

      

    public class Demoq {
        public void run(){
            for (int i = 0; i <50; i++) {
                System.out.print("haha   ");
            }
        }
    }
    public class Demo2 {
        public void run(){
            for (int i = 0; i <50; i++) {
                System.out.print(i+"	");
            }
        }
    }
    public class Test {
        public static void main(String[] args) {
            Demoq d1=new Demoq();
            Demo2 d2=new Demo2();
            d1.run();
            d2.run();
        }
    }   //程序从上向下执行,先执行d1.run()方法,d2.run()方法等d1.run()执行完后才执行,运行结果是先输出50遍haha,再输出1-50,运行结果:
      /*haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   haha   0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49 */ 

    java使用多线程就是使类继承Thread类,然后在当前类下重写run方法,调用时使用引用类型变量.start()开启线程

    具体写法如下

    public class Demo1 extends Thread{
        public void run() {
            for (int i = 0; i <50; i++) {
                System.err.println("啊哈哈哈");
            }
        }
    }
    public class Demo2 extends Thread {
        public void run() {
            for (int i = 0; i <50; i++) {
                System.out.println("====");
            }
        }
    }
    public class Test {
        public static void main(String[] args) {
            Demo1 d1=new Demo1();
            Demo2 d2=new Demo2();
            d1.start();//开启线程
            d2.start();//开启线程
        }//本例中,两个方法同时运行,运行结果如下:
    }/*啊哈哈哈================啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈============================================================================啊哈哈哈========================================啊哈哈哈====================================================================啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈啊哈哈哈*/

    从上面结果可以看出,程序运行时,先运行d1,然后又运行d2一段时间,然后又运行d1一段时间,即两个线程一块运行,提高了cpu的利用率;

  • 相关阅读:
    WPF--模板选择
    C#基础知识回顾--委托事件
    WPF刷新界面之坎坷路
    git 复位出现If no other git process is currently running, this probably means a git process crashed in this repo
    winrar 授权破解过期解决
    百度地图经纬度批量查找功能XGeocoding使用手册
    variant conversion error for variable v23
    oracle exp导出加上过滤条件
    office 格式刷双击无法启用连刷模式
    xsl 文件如何定义 Javascript 函数并且调用
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10539215.html
Copyright © 2011-2022 走看看