• 并发编程(四)Thread类详解


    一、引言

      Thread类中存在着许多操作线程的方法,学习Thread类是非常有必要的,前面我们也嘘唏了创建线程的几种方式,若线程的创建不是以继承Thread类的方式创建的,那我们又改如何使用Thread中的方法呢?下面一起来学习一下多线程操作的重点--Thread类。

    二、实例详解

    /**
     * 认识Thread类的常用方法
     */
    public class MyThread {
    
        public static void main(final String[] arguments) throws InterruptedException {
            /*一个以实现Runnable接口的方式创建的线程,如何使用Thread类中的方法?*/
            //1、创建一个线程实例(此线程是以实现Runnable接口的方式创建的)
            TestThread runableThread = new TestThread();
            //2、通过Thread类的构造函数,用刚才创建的线程生成一个Thread类的实例
            Thread thread = new Thread(runableThread);
    
            /*Thread类中重要的操作线程方法*/
            thread.setName("线程1");//设置线程名称
            thread.setPriority(1);//设置线程优先级(1~10;默认为5;10为最高优先级;优先级高并不一定就先执行!
            thread.setDaemon(false);//设置该线程是否为守护线程(true:是;false:不是)
            thread.start();//启动线程
            thread.isAlive();//查看当前线程是否存活
            thread.join(3000L);//等待该线程执行X秒后再执行下面的代码(PS:若设值大于线程执行时间,则执行完毕后立即执行下面的线程)
            thread.interrupt();//终止线程(PS:若线程中存在sleep方法,且线程还没运行完毕,调用interrupt时会报错)
    
            /*Thread类中的静态方法*/
            thread.sleep(1000L);//线程休眠1秒(当前线程回到可执行状态,并不一定能立即执行!
            thread.yield();//暂停执行当前线程,并执行其他线程(当前线程回到可执行状态)
            thread.currentThread();//返回当前线程的实例对象
        }
    
        /**
         * 线程实体(实现Runnable接口)
         */
        static class TestThread implements Runnable {
    
            public void run() {
                try {
                    System.out.println("运行线程!线程名称为: " + Thread.currentThread().getName() + ",执行开始时间:" + new Date());
                    TimeUnit.SECONDS.sleep(5L);//休眠
                    System.out.println("运行线程完毕!线程名称为: " + Thread.currentThread().getName() + ",执行结束时间:" + new Date());
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }
  • 相关阅读:
    RxJava Android(RxAndroid) 开发全家桶
    Android Retrofit RxJava实现缓存
    Android Touch事件传递机制详解 下
    Android Touch事件传递机制详解 上
    Android Framework 记录之二
    XMind 8 Update 7 Pro 激活码
    leetcode 2-> Add Two Numbers
    leetcode 1 -> Two Sum
    leetcode 3-> Longest Substring Without Repeating Characters
    Python enumerate() 函数
  • 原文地址:https://www.cnblogs.com/riches/p/11990274.html
Copyright © 2020-2023  润新知