Java基础之线程最详细最精简的介绍

来源:互联网 发布:sql server乘法 编辑:程序博客网 时间:2024/04/26 22:33

 

博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 

 

        程序运行中,要处理的事情很多,所以一个主线程处理起来肯定是比较费劲的,所以要开启线程,就像代理者模

 

式一样,开几个子线程就像雇佣几个帮工,帮忙处理事情,处理完通知主线程一声或者返回处理结果就行。所以做程

 

序就如做事、做PM一样,想要做的好,想要做的大,就一定要懂找“帮工”!一个好程序员必定是一名优秀的管

 

者!

 

run()和start():把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用 run()方法。


sleep():最常用的方法
官方解释叫做“暂时让出使用权”,线程不会自动醒来,使用方法:Thread.sleep(millisecond)。

yield():线程暂停,但只能让同优先级的线程有执行的机会。


wait():继承 (extends)自Object类,而非Thread类的实现。使用Thread.notify() or nofityAll()方法来唤醒。

Synchronized:用于保护共享数据。当线程访问该加锁对象时,其他线程不能访问,该线程执行完后其他方可执行。


currentThread():当前线程。如Thread.currentThread()-->Thread[main,5,main] 主线程,第5级别线程
 
getPriority(),setPriority():设置线程优先级。有从低到高1,5,10三个档次。当然你也可以在1-10中间随便找一个数字。
 
isAlive():线程是否还在执行。返回的是一个布尔值.如  t.currentThread().isAlive();判断t线程是否仍在运行.

join():等候执行,把另一个线程的join方法写在本线程里面,表示另一条线程阻塞后,本条线程执行。

void join()  Waits for this thread to die.    
void join(long millis)  Waits at most millis milliseconds for this thread to die.    
void join(long millis, int nanos)  Waits at most millis milliseconds plus nanos nanoseconds for this thread to die. 

一个线程肯定处于四种状态中的一种:
1) 产生(New):线程对象已经产生,但尚未被启动。
2) 可执行(Runnable):表示线程可能正处于线程池中等待排排程器启动或者正在执行。
3) 死亡(Dead):线程结束即死亡。
4) 停滞(Blocked):线程处于停滞状态,系统排程器就会忽略它。重新回到可执行状态时,才可能执行。
原创粉丝点击