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://pwwzsj.com/article/cdpiod.html