|NO.Z.00106|——————————|BigDataEnd|——|Java&多线程.V18|——|Java.v18|object类常用方法|
一、object类常用的方法
方法声明 | 功能介绍 |
void wait() | 用于使得线程进入等待状态,直到其它线程调用notify()或notifyAll()方法 |
void wait(longtimeout) | 用于进入等待状态,直到其它线程调用方法或参数指定的毫秒数已经过去为止 |
void notify() | 用于唤醒等待的单个线程 |
void notifyAll() | 用于唤醒等待的所有线程 |
二、编程代码
package com.yanqi.task18;
public class ThreadCommunicateTest implements Runnable {
private int cnt = 1;
@Override
public void run() {
while (true) {
synchronized (this) {
// 每当有一个线程进来后先大喊一声,调用notify方法
notify();
if (cnt <= 100) {
System.out.println("线程" + Thread.currentThread().getName() + "中:cnt = " + cnt);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
cnt++;
// 当前线程打印完毕一个整数后,为了防止继续打印下一个数据,则调用wait方法
try {
wait(); // 当前线程进入阻塞状态,自动释放对象锁,必须在锁定的代码中调用
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
break;
}
}
}
}
public static void main(String[] args) {
ThreadCommunicateTest tct = new ThreadCommunicateTest();
Thread t1 = new Thread(tct);
t1.start();
Thread t2 = new Thread(tct);
t2.start();
}
}
三、编译打印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=52426:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task18.ThreadCommunicateTest
线程Thread-0中:cnt = 1
线程Thread-1中:cnt = 2
线程Thread-0中:cnt = 3
线程Thread-1中:cnt = 4
线程Thread-0中:cnt = 5
线程Thread-1中:cnt = 6
线程Thread-0中:cnt = 7
线程Thread-1中:cnt = 8
线程Thread-0中:cnt = 9
线程Thread-1中:cnt = 10
线程Thread-0中:cnt = 11
线程Thread-1中:cnt = 12
线程Thread-0中:cnt = 13
线程Thread-1中:cnt = 14
线程Thread-0中:cnt = 15
线程Thread-1中:cnt = 16
线程Thread-0中:cnt = 17
线程Thread-1中:cnt = 18
线程Thread-0中:cnt = 19
线程Thread-1中:cnt = 20
线程Thread-0中:cnt = 21
线程Thread-1中:cnt = 22
线程Thread-0中:cnt = 23
线程Thread-1中:cnt = 24
线程Thread-0中:cnt = 25
线程Thread-1中:cnt = 26
线程Thread-0中:cnt = 27
线程Thread-1中:cnt = 28
线程Thread-0中:cnt = 29
线程Thread-1中:cnt = 30
线程Thread-0中:cnt = 31
线程Thread-1中:cnt = 32
线程Thread-0中:cnt = 33
线程Thread-1中:cnt = 34
线程Thread-0中:cnt = 35
线程Thread-1中:cnt = 36
线程Thread-0中:cnt = 37
线程Thread-1中:cnt = 38
线程Thread-0中:cnt = 39
线程Thread-1中:cnt = 40
线程Thread-0中:cnt = 41
线程Thread-1中:cnt = 42
线程Thread-0中:cnt = 43
线程Thread-1中:cnt = 44
线程Thread-0中:cnt = 45
线程Thread-1中:cnt = 46
线程Thread-0中:cnt = 47
线程Thread-1中:cnt = 48
线程Thread-0中:cnt = 49
线程Thread-1中:cnt = 50
线程Thread-0中:cnt = 51
线程Thread-1中:cnt = 52
线程Thread-0中:cnt = 53
线程Thread-1中:cnt = 54
线程Thread-0中:cnt = 55
线程Thread-1中:cnt = 56
线程Thread-0中:cnt = 57
线程Thread-1中:cnt = 58
线程Thread-0中:cnt = 59
线程Thread-1中:cnt = 60
线程Thread-0中:cnt = 61
线程Thread-1中:cnt = 62
线程Thread-0中:cnt = 63
线程Thread-1中:cnt = 64
线程Thread-0中:cnt = 65
线程Thread-1中:cnt = 66
线程Thread-0中:cnt = 67
线程Thread-1中:cnt = 68
线程Thread-0中:cnt = 69
线程Thread-1中:cnt = 70
线程Thread-0中:cnt = 71
线程Thread-1中:cnt = 72
线程Thread-0中:cnt = 73
线程Thread-1中:cnt = 74
线程Thread-0中:cnt = 75
线程Thread-1中:cnt = 76
线程Thread-0中:cnt = 77
线程Thread-1中:cnt = 78
线程Thread-0中:cnt = 79
线程Thread-1中:cnt = 80
线程Thread-0中:cnt = 81
线程Thread-1中:cnt = 82
线程Thread-0中:cnt = 83
线程Thread-1中:cnt = 84
线程Thread-0中:cnt = 85
线程Thread-1中:cnt = 86
线程Thread-0中:cnt = 87
线程Thread-1中:cnt = 88
线程Thread-0中:cnt = 89
线程Thread-1中:cnt = 90
线程Thread-0中:cnt = 91
线程Thread-1中:cnt = 92
线程Thread-0中:cnt = 93
线程Thread-1中:cnt = 94
线程Thread-0中:cnt = 95
线程Thread-1中:cnt = 96
线程Thread-0中:cnt = 97
线程Thread-1中:cnt = 98
线程Thread-0中:cnt = 99
线程Thread-1中:cnt = 100
Process finished with exit code 0
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通