1、多线程的基础方法探究
start( ) 注意:不能重复使用
成员方法: 启动此线程,自动调用run()方法
返回值: void
run( ) native 方法
成员方法: 执行内容
返回值; void
yield( ) native 方法
静态方法: 使当前执行的线程暂停,让步于同优先级或更高的线程执行,暂停时间不一定。
返回值 : void
sleep ( ) native 方法 只能在方法中捕获异常,因为子类覆盖父类方法,子类不能抛出新异常
sleep( long millis ) native 方法
静态方法: 使当前线程阻塞或阻塞指定时间,
中断睡眠: interrupt() : 依靠的是异常处理机制,会抛出一个中断异常。
返回值:void
注意点:使用线程引用调用sleep()方法不会使该线程阻塞,而是会使当前线程阻塞
join ( )
join(long millis)
成员方法: 其他线程 等待该线程结束或者等老子指定时间再运行(其他线程都让老子先执行,等我执行完你们在运行)
返回值: void
interrupt( )
成员方法: 作用于:运行中的线程、阻塞的线程 。仅修改阻塞标志,如果此线程被sleep阻塞,会抛出异常
返回值: void
isInterrupt ( )
成员方法 : 测试此线程的中断状态, 不会改变此线程的状态;
返回值: boolean
interrupted( ) :
静态方法: 测试当前线程的是否被中断,并且将此线程的中断状态设置为flase
返回值: boolean
守护线程:脱离控制终端,生命周期依赖于用户线程,最后一个死亡。
举例: 垃圾回收机制的实现
setDaemon( boolean on ):
成员方法: 设置守护线程,true 守护线程 false 用户线程
返回值:void
isDaemon( ) :
成员方法: 检查此线程是否为守护线程
返回值: boolean
优先级:
java采用的是抢占式调度模型,所以优先级高的线程获取的CPU时间片相对多一些
java 中的几个常量优先级:
最高级: MAX-PRIORITY = 10
最低级: MIN-PRIORITY = 1
默认级: NORM-PRIORITY = 5
setPriority(int newPriority ):
成员方法 :设置线程优先级
返回值:void