Java-线程间通信
一 线程通讯
就是多个线程操作同一个资源,但是操作的动作不同
二 停止线程:
控制住run的循环就可以控制线程结束
当线程处于冻结状态,就不会读取标记,线程就不会结束
interrupt中断函数:从冻结状态变为运行状态,强制转变状态会抛出中断异常
当没有指定的方式让冻结的线程恢复到运行状态时,这时需要对冻结状态清楚
强制让想成恢复到运行状态。这样就可以操作标记让线程结束
三 常见Thread类方法:
setDaemon(boolean):
标记为守护线程或用户进程,当正在运行的线程都是守护线程时,Java 虚拟机退出。
该方法必须在启动线程前调用。
join():必须等待当前线程执行结束,当前线程持有cpu执行权,再切换到主线程(之前主线程被冻结)
当A线程执行到B线程的join方法时,A线程就会等待,等待B线程执行完才会执行
可以用来临时加入线程执行
toString():
返回该线程的字符串表示形式,包括线程名称、优先级和线程组。
setPriority():优先级,默认为5,可以更改线程的优先级
这三个常用
1 MIN_Priority,
5 NOM_Priority,
10 MAX_Priority
yield():暂停当前正在执行的线程对象,并执行其他线程
四 线程补充
线程池中存放等待的线程
在等待唤醒机制(信号量)中,多个线程相互通信的资源类应该使用
while标记
notifyAll通知唤醒线程池所有线程
同步函数
如下图:
版权声明:欢迎交流指正文章的错误,必定虚心接受,QQ872785786
原文地址:http://blog.csdn.net/qq_22075977/article/details/46890327