您当前的位置: 首页 > 

Dongguo丶

暂无认证

  • 1浏览

    0关注

    472博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

线程间定制化通信

Dongguo丶 发布时间:2021-09-10 15:26:00 ,浏览量:1

synchronized实现线程间通信的案例如果有多个线程那么就无法指定线程执行的顺序,我们可以使用Lock锁的Condition 实现线程定制化通信

实例:

A线程打印2次A,B线程打印3次B,C线程打印5次C,按照此顺序循环10轮

思路:创建三个线程给每个线程设置一个标志位

线程A判断flag=0,打印2次,修改flag=1,通知线程B

线程B判断flag=1,打印3次,修改flag=2,通知线程C

线程C判断flag=2,打印5次,修改flag=0,通知线程A

package com.dongguo.concurrent.lock;

import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/**
 * @author Dongguo
 * @date 2021/9/3 0003-15:01
 * @description:
 */
public class ThreadOrderAccessDemo {
    public static void main(String[] args) {
        ShareResource shareResource = new ShareResource();
        new Thread(() -> {
            for (int i = 1; i  {
            for (int i = 1; i  {
            for (int i = 1; i             
关注
打赏
1638062488
查看更多评论
0.0414s