关注
多线程编程的实战技巧主要包括线程操纵资源类、避免虚假唤醒、使用锁和条件变量等工具。以下是一个具体的例子:
1. 定义一个资源类Source,包含一个锁lock、三个条件变量conditionA、conditionB、conditionC和一个状态变量state。
```java
class Source {
Lock lock = new ReentrantLock();
Condition conditionA = lock.newCondition();
Condition conditionB = lock.newCondition();
Condition conditionC = lock.newCondition();
int state = 1;
void printA() {
System.out.println("A");
}
void printB() {
System.out.println("B");
}
void printC() {
System.out.println("C");
}
}
```
2. 定义三个线程类A、B、C,每个线程都包含一个Source对象,并实现run方法。在run方法中,线程首先获取锁,然后判断状态是否等于自己的序号,如果不是,则等待。如果是,则执行打印操作,并将状态设置为下一个线程的序号,最后通知下一个线程。
```java
class A implements Runnable {
private Source source;
public A(Source source) {
this.source = source;
}
@Override
public void run() {
source.lock.lock();
try {
while (source.state != 1) {
source.conditionA.await();
}
source.printA();
source.state = 2;
source.conditionB.signal();
} catch (Exception e) {
e.printStackTrace();
} finally {
source.lock.unlock();
}
}
}
```
3. 在主函数中,创建Source对象和三个线程,并启动线程。
```java
class Test {
public static void main(String[] args) throws InterruptedException {
Source source = new Source();
for (int i = 0; i < 100; i++) {
new Thread(new A(source)).start();
new Thread(new B(source)).start();
new Thread(new C(
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
06-03 11:31
四川轻化工大学 Java 点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得现在还能进互联网吗? #
2690次浏览 74人参与
# 如何准备秋招 #
5661次浏览 87人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
19404次浏览 173人参与
# 实习,不懂就问 #
18223次浏览 249人参与
# 如果中了500万,你会离职吗? #
86818次浏览 681人参与
# 你觉得实习能学到东西吗 #
8221次浏览 184人参与
# 哪个瞬间让你对大厂祛魅了? #
379786次浏览 2777人参与
# 面试时被问的最奇葩的问题 #
21639次浏览 125人参与
# 秋招什么时候开投比较合适? #
3442次浏览 61人参与
# 软开人,秋招你打算投哪些公司呢 #
99661次浏览 935人参与
# 来聊聊你认为的薪资天花板是哪家? #
30380次浏览 174人参与
# 每个月的工资都是怎么分配的? #
8290次浏览 143人参与
# 预测一下26届秋招形势 #
13297次浏览 136人参与
# 腾讯工作体验 #
473837次浏览 3490人参与
# 打工人的精神状态 #
52163次浏览 944人参与
# 职场情商大赛 #
131299次浏览 655人参与
# 高考出分的那一天,我__ #
10489次浏览 147人参与
# 非技术2024笔面经 #
384754次浏览 4732人参与
# 一觉醒来,秋招难度下降一万倍…… #
83580次浏览 642人参与
# 京东美团大战,你怎么看? #
92658次浏览 569人参与
# 安利/避雷我的专业 #
75522次浏览 522人参与