15.停止线程 守护线程 join() yield()

来源:互联网 发布:淘宝被投诉商标侵权 编辑:程序博客网 时间:2024/05/16 01:17

停止线程:

原理:stop()//已过时

只有一种方法,即run()运行结束

开启多线程运行,运行代码通常是循环结构,只要控制住循环,就可以让run()结束,即线程结束


如果线程状态均是wait(),调用中断线程方法interrupt(),可强制唤醒冻结线程,产生中断异常,代码停止循环。

-----------------------------------------------------

守护线程:setDaemon(boolean)

定义守护线程:

在启动线程前调用:

t1.setDaemon(true);

t1.start();


守护线程也是用户线程,属于后台线程

前台所有线程运行结束后,后台线程自动结束

所有线程均为守护线程时,JVM退出


-----------------------------------------------------


join() :等待该线程终止。

t1.join():t1要CPU执行权,主线程等待t1执行完


特点:当A线程执行到B线程的join()时,A线程等待至B线程执行完,可用来临时加入线程执行

-----------------------------------------------------


优先级&yield()

优先级一共有10级,数值越大优先级越高

默认优先级5

MIN_PRIORITY:1

NORM-PRIORITY:5

MAX_PRIORITY:10

设置优先级:

在start()前使用即可:

t1.setPriority(int newPriority);

t1.start();


static yield():暂停当前执行线程对象,执行其他线程(强制释放执行权)

稍微减缓线程执行频率,能达到线程都有机会平均运行效果

但yield()不能保证线程交替执行,在仅有主线程外两个子线程情况下可以实现交替执行

-----------------------------------------------------


0 0
原创粉丝点击