//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多线程连续打印字母数字问题相关推荐

  1. python正则匹配数字_Python正则表达式,用于字母数字

    我正在学习正则表达式,并尝试执行以下操作: 以下是一系列字母数字的格式.它以4位数字开头,后跟2个空格,然后是8位数字,然后是一个空格,然后是8位数字,然后是一个空格,然后是8位数字,然后是一个空格, ...

  2. java正则表达式 字母数字下划线_字母数字下划线常用正则表达式

    1.由数字.26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$ 2.非负整数(正整数 + 0 ): ^/d+$ 3. 正整数: ^[0-9]*[1-9][0-9]*$ 4.非 ...

  3. 判断是不是数字 Java_java如何判断是不是数字

    java中判断是否是数字的方法: 1.用正则表达式/** * 利用正则表达式判断字符串是否是数字 * @param str * @return */ public boolean isNumeric( ...

  4. python正则匹配数字_python 正则匹配字母数字中的任意数字,字母

    原博文 2018-08-08 21:31 − ([1-9]\d*.\d*|0.\d*[1-9]\d*) (.*$) 字符串为:6.12 ounces... 相关推荐 2019-09-28 21:13 ...

  5. 如何生成随机的字母数字字符串?

    我一直在寻找一种简单的 Java算法来生成伪随机的字母数字字符串. 在我的情况下,它将用作唯一的会话/密钥标识符,在"超过500K+世代中"可能"是唯一的(我的需求实际上 ...

  6. 在PHP中生成随机的字母数字字符串

    首先,让我说几乎没有事件是真正随机的. 如果我们知道所涉及的每个因素(例如空气摩擦,重力和初始力)的影响,那么即使从理论上讲,经典的抛硬币的结果也可以预测. 同样的情况适用于随机数和字母数字字符串的生 ...

  7. python打印随机验证码,包含大小写字母和随机数字

    python打印随机验证码,包含大小写字母和随机数字 #四位验证码:三位字母,一位数字 import random as r la=[ chr(i) for i in range(65,91)]#定义 ...

  8. c语言:输入一个字符串,统计字母,数字,空格出现的个数,c - 统计字符串字母,空格,数字,其他字符的个数和行数....

    #include #include using namespace std; /* 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. */ void count() { //统 ...

  9. python电话号码对应的字符组合_Python3 在字符串中提取字母+数字组合微信账号、电话等 - pytorch中文网...

    今天处理数据要提取字符串中的微信,字符串中包含中文英文Emoji,标点符号等. python 提取字符串中的电话 提取电话相对简单,多个电话也可以提取 import re desstr = " ...

最新文章

  1. php localcompare,GetDriveName 方法
  2. squid rebuild 阶段swap.state 持续增大耗尽磁盘
  3. 人工智能:第九章 Agent (艾真体)
  4. aaynctask控制多个下载进度_史上最强的进度图绘制十大注意事项!
  5. 5.IDA-文本搜索、二进制搜索(16进制字节序列)、替换16进制
  6. VS配置本地IIS以域名访问
  7. 多语言网站解决方案 v2.00
  8. 建模步骤_带你十个步骤学建模(二)
  9. 如何用BabeLua运行Lua代码
  10. 在Linux中使用飞信发送手机短信
  11. 计算机软件的制作过程,迅捷流程图制作软件
  12. 日常生活小技巧 -- Beyond Compare之PC与UNIX文件比较
  13. 那些有趣/用的 Python 库
  14. lol服务器维护8月6日,LOL8月6日维护到几点 英雄联盟9.15新版本更新维护公告
  15. 2021-2027全球与中国美容淋浴器市场现状及未来发展趋势
  16. beeline连接失败 No current connection
  17. win+ubuntu安装Nvidia显卡驱动
  18. Ubuntu之桌面安装及启动级别切换
  19. Centos6.3挂载移动硬盘,新硬盘方法
  20. win7资源服务器未响应,Win7资源管理器未响应怎么办 试试这个方法 - 驱动管家

热门文章

  1. Java实验8 T6.绘制一个二叉树
  2. 程序在Linux下后台运行,进程查看及终止
  3. Nginx配置静态资源
  4. Java使用代理服务器
  5. ROS indigo在Ubuntu上的安装教程
  6. flex4 日期类型字符串转日期类型(string转Date)
  7. ffmpeg -视频旋转和高清转码示例
  8. 用并查集合并不同的集合
  9. 安装k8s,高可用3 master安装脚本
  10. jmeter配置文件--随机变量