一、创建一个线程
1,直接创建一个类继承thread,并重写thread类中的run方法。
然后创建一个该类的实例并调用其start方法。但是本方法不推荐使用,它没有很好的分开线程与任务。
2、创建一个任务类继承runnable接口,并重写接口中的run方法。
用含runnable接口实例的线程构造方法创建一个线程实例并调用start方法。这个方法分离了任务与线程,符合面向对象编程的思想。
二、常用方法
0,start() void,开始线程并执行run()方法。 对象方法
1,currentThread(),返回当前使用的线程。类方法
2,thread priority 线程优先级,1 - 10
常量: MAX_PRIORITY 10
NORM_PRIORITY 5
MIN_PRIORITY 1
getPriority() final int,返回当前线程的优先级。对象方法
setPriority(int),设置当前线程的优先级。对象方法
3,线程名称
getName() final String,setName(String) 对象方法
4,中断线程
interrupt() void,中断线程。 对象方法
interrupted() final boolean,返回当前线程是否中断。 对象方法
5,isAlive() final boolean,返回当前线程是否处于活动状态。对象方法
活动状态:线程启动后没有结束即为alive
6,join() final void,当前执行join方法的线程进入阻塞状态,等待调用join方法的线程结束后再恢复就绪状态。对象方法
join(long 毫秒),join(long 毫秒, int 纳秒),等待当前线程结束,最多等待xx时间。
例:在线程t1中调用线程t2.join(),则t1停止,等待t2执行完后再执行t1。
7,sleep(long 毫秒),sleep(long 毫秒,int 纳秒),中断当前线程xx时间。 对象方法
8,yield(),void ,向调度程序提示当前线程愿意放弃当前使用的处理器。类方法
9,daemon 守护线程
java 线程分两种,userThread和daemonThread
main线程和普通用户创建的线程都是userThread,java的垃圾回收线程是daemonThread
当所有用户线程都结束时守护线程结束。
isDaemon() final boolean, 返回当前线程是否是守护线程。 对象方法
setDaemon(boolean) final void,设置当前线程是否为守护线程。 对象方法
如果要设置线程为守护线程,必须在该线程start之前设置。