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();

    }

    }
    面试的时候大脑空白什么也没写出来,惨~~~
  • 相关阅读:
    第五章 数据的共享与保护
    实验6
    实验5
    实验4 类与对象2)
    实验三 类与对象
    实验2
    2018—3-21第二章程序例题(2)
    第二章思维导图
    2018—3-18C++第二章程序例题
    汇编实验九
  • 原文地址:https://www.cnblogs.com/bzdofj/p/14186794.html
Copyright © 2011-2022 走看看