• CoreJava笔记之线程


    程序,进程和线程
    程序:没有执行的指令序列和相关的数据的集合(如:qq.exe)
    如:磁盘上的可执行命令
    进程:正在执行的程序,进程占用资源(CPU,Memoary,IO)
    线程:是进程中并发执行的过程(共享进程资源)

    同步:步调一致的顺序执行,如:上公交车,一个一个的上
    异步:步调不一致的同时执行,如:大家一起上卡车

    线程:名称->类
    Thread 类中包含一个方法 run() 这个方法就是独立运行的过程
    Thread 类中还包含方法 start() 用来启动独立运行的run()

    创建一并启动个线程:
    1、要覆盖Thread类中的run() 方法,提供独立运行的过程
    2、调用Thread实例的start() 方法启动 run()过程

    线程的状态:
    start()
    [新建 new] -------------> [可运行(Runnable)] <------>[运行态(Running)]

    软件执行时至少执行一遍
    ========================
    线程:
    线程状态:
    1、new(新建)
    2、Runnable
    3、Running
    4、Block
    5、Dided
    线程状态管理:
    Thread.yield()当前线程让出处理器(离开Running),使当前线程进入Runnable等待
    Thread.sleep(times)使当前线程从Running放弃处理器进入Block状态,休眠times毫秒,再返回到Runnable
    如果其他线程打断当前线程的Block(sleep),就会发生InterruptedException

    后台线程(守护线程,精灵线程)
    t1.setDaemon(true);
    Java进程的结束:当所有前台线程都结束时,Java进程结束
    后台线程,不管是否结束,都被停掉!
    线程的优先级
    默认有10 优先级,优先级高的线程获得执行的机会多。机会的多少不能通过代码干预。
    默认的优先级为 5.
    ======================================
    两种方式创建线程:
    1、继承Thread类
    a.继承Thread类,覆盖run()方法,提供并发运行的过程
    b.创建这个类的实例
    c.使用start()方法启动线程
    2、实现Runnable接口
    a.实现Runnable接口,实现run()方法,提供并发运行的过程
    b.创建这个类的实例,用这个实例作为Thread构造器参数创建Thread类。
    c.使用start()方法启动线程

    class Foo implements Runnable{
    public void run(){
    //...
    }
    }
    Thread t = new Thread(new Foo());
    t.start();

    *****************************************

    集中线程的写法:

    1.

    new Thread(){
      public void run(){
        for (int i = 0; i < 5; i++) {
        System.out.println("HelloWorld!");
        }
      }
    }.start();

    2.

    new Thread(new Runnable(){
      public void run(){
      System.out.println("second");
      }
    }).start();

  • 相关阅读:
    python list介绍
    python unittest模块
    python 贪婪算法
    python 动态规划:背包问题
    汇编语言 基础知识(王爽)
    python 迪克斯特拉(Dijkstra)
    python 广度优先查找 (最短路径)
    Python 快速排序
    python 分而治之 找零数量 最小组合
    移动端的头部标签和 meta
  • 原文地址:https://www.cnblogs.com/sylovezp/p/4118216.html
Copyright © 2020-2023  润新知