zoukankan      html  css  js  c++  java
  • 线程的常用方法

     线程的常用方法基本都在Thread类中,所以大部分都是通过Thread类进行调用的

    1.取得当前线程的名称:

      getName()

    2.取得当前线程对象:

      currentThread()

    3.判断线程是否启动:

      isAlive()

    4.线程的强行运行:

      join()

    5.线程的休眠

      sleep()

    6.线程的礼让(针对生命周期是非常重要的 )

      yield()
    =============================================================

    ThreadDemo03.java

     线程未启动之前是false,启动之后是true

     

    当主线程执行到10的时候,自己的线程开始执行,执行完毕后将cpu资源让给主线程

    package thread;

    class RunnableDemo implements Runnable{

    private String name;
    //创建构造方法,以标识当前哪一个线程执行
    public RunnableDemo(String name) {
    this.name=name;
    }

    @Override
    public void run() {
    for (int i = 0; i < 50; i++) {
    try {
    //线程休眠1秒钟
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    //System.out.println("当前线程对象:"+Thread.currentThread().getName());
    System.out.println(name+":"+i);
    }
    }
    }
    public class ThreadDemo03 {
    public static void main(String[] args) {
    //实例化线程对象
    RunnableDemo r1=new RunnableDemo("A");
    //RunnableDemo r2=new RunnableDemo("B");

    Thread t1=new Thread(r1);
    //判断线程是否启动,
    //System.out.println(t1.isAlive());
    //Thread t2=new Thread(r2);
    t1.start();
    //t2.start();
    //启动之后再来判断
    //System.out.println(t1.isAlive());
    for (int i = 0; i < 50; i++) {
    if(i>10) {
    try {
    t1.join();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    System.out.println("主线程:"+i);
    }
    }
    }

    =========================================================

    线程的礼让

    package thread;

    class RunnableDemo implements Runnable{

    private String name;
    //创建构造方法,以标识当前哪一个线程执行
    public RunnableDemo(String name) {
    this.name=name;
    }

    @Override
    public void run() {
    for (int i = 0; i < 50; i++) {
    System.out.println(name+":"+i);
    if (i==10) {
    System.out.println("礼让");
    Thread.yield();
    }
    }
    }
    }
    public class ThreadDemo03 {
    public static void main(String[] args) {
    //实例化线程对象
    RunnableDemo r1=new RunnableDemo("A");
    RunnableDemo r2=new RunnableDemo("B");

    Thread t1=new Thread(r1);
    Thread t2=new Thread(r2);
    t1.start();
    t2.start();

    }
    }

  • 相关阅读:
    linux source
    C和指针 第七章 习题
    C和指针 第七章 可变参数
    C和指针 第七章 函数递归与迭代
    C和指针 第五章 位数组
    C和指针 第六章 习题
    Net core学习系列(六)——Net Core路由
    Net core学习系列(五)——Net Core应用程序Startup类介绍
    Net core学习系列(四)——Net Core项目执行流程
    Net core学习系列(三)——Net Core中的依赖注入
  • 原文地址:https://www.cnblogs.com/curedfisher/p/11975233.html
Copyright © 2011-2022 走看看