打印连续数字 java_java多线程连续打印字母数字问题
//2.写两个线程,一个线程打印1-52,另一个线程答应字母A-Z。
//打印顺序为12A34B56C……5152Z。通过使用线程之间的通信协调关系。
//注:分别给两个对象构造一个对象o,
//数字每打印两个或字母每打印一个就执行o.wait()。在o.wait()之前不要忘了写o.notify()
package homework2;
import com.sun.swing.internal.plaf.synth.resources.synth;
public class Test2 {
public static void main(String[] args) {
Object object = new Object();
shuzi shuzi = new shuzi(object);
zimu zimu = new zimu(object);
Thread t = new Thread(shuzi);
Thread t1 = new Thread(zimu);
t.start();//数字线程先运行
t1.start();
}
}
class shuzi implements Runnable{
private Object object;
//声明类的引用
public shuzi(Object object) {
this.object = object;
}
public void run() {
synchronized (object) {//上锁
for(int i=1;i<53;i++){
System.out.print(i);
if(i%2==0){
object.notifyAll();//唤醒线程
try {
object.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
class zimu implements Runnable{
private Object object;
public zimu(Object object) {
this.object = object;
}
public void run() {
synchronized (object) {
for(int j=65;j<91;j++){
char c = (char)j;
System.out.print(c);
object.notifyAll();
try {
object.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
方法2:
public class Test {
public static void main(String[] args) {
O o = new O();
A a = new A(o);
B b = new B(o);
Thread t = new Thread(a);
Thread t1 = new Thread(b);
t.start();//数字的线程先运行
t1.start();
}
}
class O{
boolean flag = false;//没有
public synchronized void set() throws InterruptedException{
for(int i=1;i<52;i++){
if(this.flag == true){
this.wait();
}
if(i%2==0){
this.flag=true;
this.notifyAll();
}
System.out.print(i);
}
}
public synchronized void get() throws InterruptedException{
for(int j =65;j<91;j++){
if(this.flag == false){
this.wait();
}
char c = (char)j;
System.out.print(c);
this.flag = false;
this.notify();
}
}
}
class A implements Runnable{
O o = new O();
public A(O o) {
super();
this.o = o;
}
public void run() {
try {
o.set();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class B implements Runnable{
O o = new O();
public B(O o) {
super();
this.o = o;
}
public void run() {
try {
o.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
打印连续数字 java_java多线程连续打印字母数字问题相关推荐
- python正则匹配数字_Python正则表达式,用于字母数字
我正在学习正则表达式,并尝试执行以下操作: 以下是一系列字母数字的格式.它以4位数字开头,后跟2个空格,然后是8位数字,然后是一个空格,然后是8位数字,然后是一个空格,然后是8位数字,然后是一个空格, ...
- java正则表达式 字母数字下划线_字母数字下划线常用正则表达式
1.由数字.26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$ 2.非负整数(正整数 + 0 ): ^/d+$ 3. 正整数: ^[0-9]*[1-9][0-9]*$ 4.非 ...
- 判断是不是数字 Java_java如何判断是不是数字
java中判断是否是数字的方法: 1.用正则表达式/** * 利用正则表达式判断字符串是否是数字 * @param str * @return */ public boolean isNumeric( ...
- python正则匹配数字_python 正则匹配字母数字中的任意数字,字母
原博文 2018-08-08 21:31 − ([1-9]\d*.\d*|0.\d*[1-9]\d*) (.*$) 字符串为:6.12 ounces... 相关推荐 2019-09-28 21:13 ...
- 如何生成随机的字母数字字符串?
我一直在寻找一种简单的 Java算法来生成伪随机的字母数字字符串. 在我的情况下,它将用作唯一的会话/密钥标识符,在"超过500K+世代中"可能"是唯一的(我的需求实际上 ...
- 在PHP中生成随机的字母数字字符串
首先,让我说几乎没有事件是真正随机的. 如果我们知道所涉及的每个因素(例如空气摩擦,重力和初始力)的影响,那么即使从理论上讲,经典的抛硬币的结果也可以预测. 同样的情况适用于随机数和字母数字字符串的生 ...
- python打印随机验证码,包含大小写字母和随机数字
python打印随机验证码,包含大小写字母和随机数字 #四位验证码:三位字母,一位数字 import random as r la=[ chr(i) for i in range(65,91)]#定义 ...
- c语言:输入一个字符串,统计字母,数字,空格出现的个数,c - 统计字符串字母,空格,数字,其他字符的个数和行数....
#include #include using namespace std; /* 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. */ void count() { //统 ...
- python电话号码对应的字符组合_Python3 在字符串中提取字母+数字组合微信账号、电话等 - pytorch中文网...
今天处理数据要提取字符串中的微信,字符串中包含中文英文Emoji,标点符号等. python 提取字符串中的电话 提取电话相对简单,多个电话也可以提取 import re desstr = " ...
最新文章
- php localcompare,GetDriveName 方法
- squid rebuild 阶段swap.state 持续增大耗尽磁盘
- 人工智能:第九章 Agent (艾真体)
- aaynctask控制多个下载进度_史上最强的进度图绘制十大注意事项!
- 5.IDA-文本搜索、二进制搜索(16进制字节序列)、替换16进制
- VS配置本地IIS以域名访问
- 多语言网站解决方案 v2.00
- 建模步骤_带你十个步骤学建模(二)
- 如何用BabeLua运行Lua代码
- 在Linux中使用飞信发送手机短信
- 计算机软件的制作过程,迅捷流程图制作软件
- 日常生活小技巧 -- Beyond Compare之PC与UNIX文件比较
- 那些有趣/用的 Python 库
- lol服务器维护8月6日,LOL8月6日维护到几点 英雄联盟9.15新版本更新维护公告
- 2021-2027全球与中国美容淋浴器市场现状及未来发展趋势
- beeline连接失败 No current connection
- win+ubuntu安装Nvidia显卡驱动
- Ubuntu之桌面安装及启动级别切换
- Centos6.3挂载移动硬盘,新硬盘方法
- win7资源服务器未响应,Win7资源管理器未响应怎么办 试试这个方法 - 驱动管家