线程通信实现输出数字以及对应字母
来源:互联网 发布:淘宝修改手机绑定 编辑:程序博客网 时间:2024/06/07 04:41
package demo02;
public class Print {
boolean flag ;
public synchronized void number() {
for (int i = 1; i <= 26; i++) {
if(flag ==true){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
flag =true;
}
}
public synchronized void leter() {
for (int i = 'a'; i <= 'z'; i++) {
if(flag ==false){
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
flag=false;
System.out.println((char)i);
this.notify();
}
}
public class TestPrint {
public static void main(String[] args) {
Print print = new Print();
Number num = new Number(print);
Leter let = new Leter(print);
new Thread(num).start();
new Thread(let).start();
}
}
class Number implements Runnable {
private Print print;
public Number(Print print) {
this.print = print;
}
@Override
public void run() {
print.number();
}
}
class Leter implements Runnable {
private Print print;
public Leter(Print print) {
this.print = print;
}
@Override
public void run() {
print.leter();
}
}
public class Print {
boolean flag ;
public synchronized void number() {
for (int i = 1; i <= 26; i++) {
if(flag ==true){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
flag =true;
System.out.print(i+" :");
}
}
public synchronized void leter() {
for (int i = 'a'; i <= 'z'; i++) {
if(flag ==false){
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
flag=false;
System.out.println((char)i);
this.notify();
}
}
}
//测试类
package demo02;
public class TestPrint {
public static void main(String[] args) {
Print print = new Print();
Number num = new Number(print);
Leter let = new Leter(print);
new Thread(num).start();
new Thread(let).start();
}
}
class Number implements Runnable {
private Print print;
public Number(Print print) {
this.print = print;
}
@Override
public void run() {
print.number();
}
}
class Leter implements Runnable {
private Print print;
public Leter(Print print) {
this.print = print;
}
@Override
public void run() {
print.leter();
}
}
0 0
- 线程通信实现输出数字以及对应字母
- Java线程问题实现打印数字字母
- ACM273 给你一个乱序的字符串,里面包含有小写字母(a--z)以及一些特殊符号,请你找出所给字符串里面所有的小写字母的个数, 拿这个数对26取余,输出取余后的数字在子母表中对应的小写字母(0对应z
- &和&&、字母数字对应的ASCII码。
- Python之字母与数字一一对应
- 输出字符串各个小写字母对应个数
- java多线程--给点1,2,A,B四个线程,交叉输出数字和字母
- 汇编语言 编写程序,如果输入的是大写字母,则输出对应的小写字母;如果输入的是小写字母,则输出对应的大写字母;如果输入的是数字,原样输出;按回车结束
- 输出字母数字和空格的个数。
- c语言实现,如果是小写字符就输出对应的大写字符,如果是大写,就输出对应的小写字符,是数字就不输出
- 输出每个数字对应的拼音
- java 输入数字 输出对应周几
- 算法-输出英文字母对应的数字
- js如何将数字转化为对应的字母
- 记录下 用数字对应EXECEL表头的字母
- java 实现接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写
- 输入一个小写字母输出一个对应的大写字母
- 4.3-4-2a 输出对应字母的ASCII值
- 【译】基于MEAN的全栈开发实例教程校对版
- Ansible playbook lookups 和 conditionals
- 安装GitStack时,80端口被System服务占用问题
- Ajax原理和封装
- Markdown入门笔记
- 线程通信实现输出数字以及对应字母
- Android主题与Toolbar样式之间的关系
- 用 Rhino/Nashorn 代替第三方 JSON 转换库
- @Transient
- sql执行顺序
- iOS中的单例模式
- 秒懂github的pull request
- Struts2的处理流程
- NOIP提高组2015 飞扬的小鸟