java多线程实现轮流输出数字和字母-创新互联

本案例演示3个线程轮流打印输出数字字母;代码如下

成都创新互联是专业的福贡网站建设公司,福贡接单;提供成都网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行福贡网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
package thread;

public class ThreadTest {
   public static void main(String[] args) {
     Print print = new Print();
     new Thread(()->{
       print.printNum();
     }).start();

     new Thread(()->{
       print.printZimu();
     }).start();

     new Thread(()->{
       print.printZimuLittle();
     }).start();
   }
}
package thread;

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

public class Print {
   final Lock lock = new ReentrantLock();
   final Condition num = lock.newCondition();
   final Condition zimu = lock.newCondition();
   final Condition zimuLittle = lock.newCondition();

   public void printNum(){
     lock.lock();
     try {
       for (int i=1;i<53;i++){
         System.out.print(i);
         if (i%2==0){
           zimu.signal();
           num.await();
         }
       }
     } catch (InterruptedException e) {
       e.printStackTrace();
     } finally {
       lock.unlock();
     }
   }

   public void printZimu(){
     lock.lock();
     try {
       for (int i=0;i<26;i++){
         System.out.print((char)(i+'A'));
         zimuLittle.signal();
         zimu.await();
       }
     } catch (InterruptedException e) {
       e.printStackTrace();
     } finally {
       lock.unlock();
     }
   }

   public void printZimuLittle(){
     lock.lock();
     try {
       for (int i=0;i<26;i++){
         System.out.print((char)(i+'a'));
         num.signal();
         zimuLittle.await();
       }
     } catch (InterruptedException e) {
       e.printStackTrace();
     } finally {
       lock.unlock();
     }
   }
}

最终输出结果为12aA34bB56cC78dD910eE1112fF1314gG1516hH1718iI1920jJ2122kK2324lL2526mM2728nN2930oO3132pP3334qQ3536rR3738sS3940tT4142uU4344vV4546wW4748xX4950yY5152zZ

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:java多线程实现轮流输出数字和字母-创新互联
转载来于:http://myzitong.com/article/cdpiod.html