zoukankan      html  css  js  c++  java
  • 多线程操作共享变量顺序输出abc 记一次al面试题

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

    public class D {
    private static volatile int index = 0;
    public static Lock lock = new ReentrantLock();
    public static void main(String[] args) {
    new Thread(() -> {
    while (true){
    lock.lock();
    try {
    if (index % 3 == 0) {
    index++;
    System.out.print("a");
    }
    }finally {
    lock.unlock();
    }
    }
    }).start();

    new Thread(() -> {
    while (true){
    lock.lock();
    try {
    if (index % 3 == 1) {
    index++;
    System.out.print("b");
    }
    }finally {
    lock.unlock();
    }
    }
    }).start();

    new Thread(() -> {
    while (true){
    lock.lock();
    try {
    if (index % 3 == 2) {
    index++;
    System.out.print("c");
    }
    }finally {
    lock.unlock();
    }
    }
    }).start();

    }

    }
    面试的时候大脑空白什么也没写出来,惨~~~
  • 相关阅读:
    8086标志
    微内核
    枚举算法
    ajax
    面向对象技术概述
    ajax
    存储技术
    自然数组排列
    将搜索二叉树转换成双向链表
    在单链表中删除指定值的节点
  • 原文地址:https://www.cnblogs.com/bzdofj/p/14186794.html
Copyright © 2011-2022 走看看