Java-线程间通信

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通知唤醒线程池全部线程
同步函数
例如以下图:
这里写图片描写叙述

原文地址:https://www.cnblogs.com/mengfanrong/p/5202939.html