停止线程:
原理: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()不能保证线程交替执行,在仅有主线程外两个子线程情况下可以实现交替执行
-----------------------------------------------------