• Java基础——线程总结


    Java基础——线程总结

    一、线程是什么?

    线程:一个程序里不同的运行路径。

    二、怎样创建线程?

     两种方法创建线程:

    第一种

    (1)定义详细功能类实现Runnable接口,能够多次调用而实现数据共享

    (2)Thread myThread = new Thread()          //參数为Runnable接口类型

    (3)Runnable中仅仅有一个方法

          public void run(){……}                           //用以定义线程执行体

    另外一种

    (1)定义一个Thread的子类并重写run()方法

          class MyThread extends Thread {
    
          public void run(){……}
    
          }

    (2)生成该类的对象

          MyThread myThread = new MyThread (…)

    三、能够对线程做哪些控制?

    方法

    功能

    bool isAlive(myThread Thread)

    推断线程是否还“活”着,即线程是否还未终止。

    int getPririty()

    获得线程的优先级数值

    void setPriority(int NewPriority)

    设置线程的优先级数值

    Thread.sleep(int sleepTime)

    指定当前线程的睡眠时间(单位:毫秒)

    void join()

    将当前线程与上一主线程合并,即A线程的a()方法调用了B线程。则让B线程结束,再恢复A线程继续运行。

    void yield()

    让出CPU,当前线程进入就绪队列等待调度。

    void wait()

    当前线程进入对象的wait pool

    void notify()/void notifyAll()

    唤醒对象的wait pool中的一个/全部等待线程。

     

    四、辨析wait()sleep()

           之所以对这两个方法辨析,它们有个共同点——暂停线程的运行。但要说起它们的不同点。那还是挺多的。

    不同点:

    1Wait()Object对象的方法;而Sleep(int sleepTime)Thead()线程的方法。

    2Wait()运行后,当前对象的锁就会被释放;而Sleep(int)运行后,锁仍然在其手中。

    3Wait()不须要指定停留时间,须要notify()方法或notifyAll()方法将其唤醒;而Sleep(int),当中int指定睡眠的毫秒数,仅仅有在超过这个时间后。醒过来,当再次获得时间片之后,才干继续运行。

  • 相关阅读:
    Axis2 1.7.4构建项目
    MyBatis之传入参数
    eclipse快捷键
    WEB-INF目录下的jsp页面如何访问?
    web-content和web-info目录问题
    http响应报文和http请求报文 详细信息
    极光推送知识点2
    极光推送别名、标签怎么理解
    推送的通知和自定义消息区别
    个推
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7289938.html
Copyright © 2020-2023  润新知