java Thread

线程分类---------------------------------- java

线程分为两种:
1.用户线程;即通常的线程
2.守护线程;这是一种特殊的线程,它的特性有“陪伴”的意思,当进程中不存在非守护线程,则守护线程自动销毁,例A线程中启动了B守护线程,那么B就会一直"陪伴"着A线程,若是A线程结束了,那么B线程也会自动的销毁。就是说启动守护线程的线程,才是守护的对象。 api

线程的优先级--------------------------- 安全

优先及高的线程获得cpu的资源将越多,也就越先执行这个线程 jvm

1.设置线程的优先级使用setPriority.java中线程优化级分为1-10个等级,jdk用三个常量来定义:
    MIN_PRIORITY = 1
    NORM_PRIORITY = 5
    MAX_PRIORITY = 10 优化

2.线程有继承性,即A线程启动了B线程,那么B线程的优先级与A同样 this

线程安全问题----------------------------------------- spa

1.从jvm结构上看:在jvm中有个栈,这个栈是专门存在java线程的信息,而每一个线程都有它们各自的领地。栈中主要存放的是方法的栈帧,每当调用一个方法时就产生出一个栈帧,当方法调用结束就将对应的栈帧弹出销毁。与其销毁的还有方法中调用的变量,因此说若是方法中都只有私有变量,那就不可能产生线程安全问题。 线程

2.那也说线程安全问题存在于"实例变量"中,若是多个线程共同访问1个对象,才有可能出现线程的安全问题。 对象

api--------------------------------------------- 继承

start 

    启动一个线程,但若是屡次启动会抛出IllegalThreadStateException。要注意的是start启动的顺序不表明线程启动的顺序

currentThread
    返回调用该代码段的线程

isAlive 
    判断当前的线程是否处于活动状态(线程已经启动且还没有终止)

sleep 
    让当前“正在执行的线程”休眠,”正在执行线程“指this.currentThread()返回的线程

getId 
    取得线程的惟一标识

interrupt
    在当前线程中打上了一个中止标识,并不会当即中止线程

stop
    当即中止线程,是很是暴力且不安全。该方法已经被废弃,由于若是强制让线程中止则有可能使一些清理性的工做得不到完成。另一个状况就是对锁定的对象进行了”解锁“,致使数据得不到同步的处理,出现数据不一致的问题。

suspend
    暂停线程,可使用resume恢复线程

yield     放弃当前的cpu资源,将它让给其余的任务去占用cpu执行时间,但放弃的时间不肯定,有可能刚放弃又立刻得到cpu的时间片。      

相关文章
相关标签/搜索