zoukankan      html  css  js  c++  java
  • 多线程笔试题记录

    线程题1

    设置三个线程并行

    t1打印a
    t2打印b
    t3打印c

    输出abc abc abc abc

    /**
    *
    * 设计三个线程并发执行
    * t1 打印 a
    * t2 打印 b
    * t3 打印 c
    *
    * 输出 abc abc abc abc
    *
    */
    public class LockTest9 {
        public static void main(String[] args) {
            WaitNofity waitNofity = new WaitNofity();
    
        //线程t1
            new Thread(() ->{
                try {
                    waitNofity.print("a",1,2);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            },"t1").start();
    
        //线程t2
            new Thread(() ->{
                try {
                    waitNofity.print("b",2,3);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            },"t2").start();
    
        //线程t3
            new Thread(() ->{
                try {
                    waitNofity.print("c",3,1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            },"t3").start();
    
        }
    
    
    
        static class WaitNofity{
            //执行标志
            int flag = 1;
    
            /**
             * @Param content 输出内容
             * @Param waitFlag 本次执行标志
             * @Param nextFlag 下次执行标志
             **/
            public void print(String content,int waitFlag,int nextFlag) throws InterruptedException {
                for (int i = 0; i < 4; i++){
                    synchronized (this){
                        while (flag != waitFlag){
                            this.wait();//阻塞
                        }
                        System.out.print(content);
                        if(waitFlag == 3){
                            System.out.print(" ");
                        }
                        flag = nextFlag;
                        this.notifyAll();//唤醒全部
                    }
    
                }
            }
        }
    
    }
    

    执行结果:

    image-20210726212054511

  • 相关阅读:
    「SOL」工厂选址(BZOJ)
    「NOTE」数论小札
    Flask实现简单的群聊和单聊
    python基础总结
    基于Flask和百度AI实现与机器人对话
    django创建路径导航
    django中权限控制到按钮级别
    django中非菜单权限的归属
    MongoDB的增删改查
    jQuery于js的区别和联系
  • 原文地址:https://www.cnblogs.com/doagain/p/15063400.html
Copyright © 2011-2022 走看看