码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础——线程总结

时间:2015-06-22 22:22:28      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:线程   wait   sleep   

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指定睡眠的毫秒数,只有在超过这个时间后,醒过来,当再次获得时间片之后,才能继续执行。

 

Java基础——线程总结

标签:线程   wait   sleep   

原文地址:http://blog.csdn.net/wangqingbo0829/article/details/46595777

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!