Java线程(练习题)
创始人
2024-11-14 15:35:00
0次

Exercise

创建三个线程:一个线程打印 100个A,一个线程打印 100 个 B ,一个线程打印 100个C 输出效果:ABC ABC ABC…交替打印

package com.kane.exercise01;  public class PrintABC implements Runnable {      private static final Object lock = new Object();     private static int state = 0;      private String str;     private int num;      public PrintABC(String str, int num) {         this.str = str;         this.num = num;     }      @Override     public void run() {         for (int i = 0; i < 100; i++) {             synchronized (lock) {                 while (state % 3 != num) {                     try {                         lock.wait();                     } catch (InterruptedException e) {                         e.printStackTrace();                     }                 }                 System.out.print(str);                 state++;                 lock.notifyAll(); // 唤醒其他线程             }             if(state%3 == 0) {                 System.out.println("");             }         }     } }   
package com.kane.exercise01;  public class Demo1 {     public static void main(String[] args) {         Thread t1 = new Thread(new PrintABC("A",0));         Thread t2 = new Thread(new PrintABC("B",1));         Thread t3 = new Thread(new PrintABC("C",2));         t1.start();         t2.start();         t3.start();     } }  

编写两个线程,一个 线程打印1-52,另一个线程打印字母A-Z打印顺序是12A34B…,即按照整数和字母的顺序从小到大打印,并且每打印两个整数后,打印一个字母,交替循环打印

package com.kane.exercise02;  import java.util.concurrent.Semaphore;  public class Demo {     private static final Semaphore Numbersemaphore = new Semaphore(1);     private static final Semaphore Dansemaphore = new Semaphore(0);      public static void main(String[] args) {         Thread t1 = new Thread(new NumberPrint());         Thread t2 = new Thread(new DanPrint());         t1.start();         t2.start();     }      static class NumberPrint implements Runnable {          @Override         public void run() {             for (int i = 1; i < 53; i++) {                 try {                     Numbersemaphore.acquire();                     System.out.print(i + " ");                     if (i%2== 0) {                         Dansemaphore.release();                     } else {                         Numbersemaphore.release();                     }                 } catch (InterruptedException e) {                     throw new RuntimeException(e);                 }             }         }     }     static class DanPrint implements Runnable {          @Override         public void run() {             for (char c = 'A'; c <= 'Z'; c++) {                 try {                     Dansemaphore.acquire();                     System.out.print(c);                     System.out.println("");                     Numbersemaphore.release();                 } catch (InterruptedException e) {                     Thread.currentThread().interrupt();                 }             }         }     }  }  

相关内容

热门资讯

每日必看!江岸多玩到底能开挂吗... 每日必看!江岸多玩到底能开挂吗(辅助挂),江岸多玩原来真的有辅助挂讲义1、江岸多玩脚本辅助下载、江岸...
玩家交流!颖河竞技怎么开挂(外... 玩家交流!颖河竞技怎么开挂(外挂),颖河竞技好像是有外挂教材一、颖河竞技游戏安装教程牌型概率发牌机制...
最新通报!皮皮四川麻将软件下载... 最新通报!皮皮四川麻将软件下载(辅助挂),皮皮四川麻将果然有辅助挂模块1、操作简单,无需皮皮四川麻将...
一分钟揭秘!52游戏开挂脚本(... 一分钟揭秘!52游戏开挂脚本(透视挂),52游戏切实有透视挂法子52游戏脚本下载中分为三种模型:52...
一分钟快速了解!堆堆乐开挂破解... 一分钟快速了解!堆堆乐开挂破解(外挂),堆堆乐竟然真的有外挂方针1、下载好堆堆乐正确养号方法之后点击...
重大通报!汇城贵州麻将开挂脚本... 重大通报!汇城贵州麻将开挂脚本(开挂),汇城贵州麻将原来真的有开挂法门1、重大通报!汇城贵州麻将开挂...
盘点一款!七色城透视挂件(外挂... 盘点一款!七色城透视挂件(外挂),七色城切实是真的有外挂经验1、全新机制【七色城ai辅助工具激活码】...
今日头条!多多休闲透视软件下载... 今日头条!多多休闲透视软件下载(外挂),多多休闲确实是真的有外挂攻略1、首先打开多多休闲辅助器下载最...
关于!钱柜麻将真的有透视吗(辅... 关于!钱柜麻将真的有透视吗(辅助器),钱柜麻将一贯是有辅助器练习钱柜麻将能透视中分为三种模型:钱柜麻...
今日焦点!河北家乡棋牌辅助工具... 今日焦点!河北家乡棋牌辅助工具(外挂),河北家乡棋牌果然是有外挂手册小薇(辅助器软件下载)致您一封信...