打印数字:
package com.sa.thread.练习.练习1;
import javax.swing.plaf.synth.SynthViewportUI;
/**
* Created by 123 on 2018-07-26
*/
public class PrintNum extends Thread{
public static boolean flag=true;
private int start;
private int end;
private String threaName;
public PrintNum() {
}public PrintNum(int start, int end,String threaName) {
this.start = start;
this.end = end;
this.threaName=threaName;
}@Override
publicvoid run() {for(int i=0;
start<=end;
i++){
m1(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}}publicsynchronized void m1(int i){
System.out.println("m1--NO------------------"+i+"次");
if(flag==true) {
for (int j = 0;
j < 2;
j++) {
System.out.println("开始打印数字:"+start);
start++;
}
flag = false;
}
}
}
【写2个线程,其中一个线程打印1-52,另一个线程打印A-Z,打印顺序应该是12A34B56C...5152Z.】打印字符:
package com.sa.thread.练习.练习1;
import static com.sa.thread.练习.练习1.PrintNum.flag;
/**
* Created by 123 on 2018-07-26
*/
public class PrintChar extends Thread{
private int start;
private int end;
private String threaName;
public PrintChar(char start,char end) {}public PrintChar(int start, int end,String threaName) {
this.start = start;
this.end = end;
this.threaName=threaName;
}public static void main(String[] args) {
char a='A';
System.out.println((char)(a+1));
}@Override
publicvoid run() {for(int i=0;
start<=end;
i++){
m2(i);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}}publicsynchronized void m2(int i){
System.out.println("m2--NO-----------------------------"+i+"次");
if(flag==false){
System.out.println("开始打印字母:"+(char)start);
start=(char)(start+1);
flag=true;
}
}
}
测试:
package com.sa.thread.练习.练习1;
/**
* Created by 123 on 2018-07-26
*/
public class test {
public static void main(String[] args) {
PrintNum printNum=new PrintNum(1,52,"打印数字线程");
PrintChar printChar=new PrintChar('A','Z',"打印字母线程");
printNum.start();
printChar.start();
}
}
测试结果:
"C:\Program Files\Java\jdk1.8.0_131\bin\java" "-javaagent:E:\IDEA\IntelliJ IDEA 2017.2.2\lib\idea_rt.jar=52456:E:\IDEA\IntelliJ IDEA 2017.2.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\management-agent.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;
C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;
E:\ideaPro2\Thread\out\production\Thread" com.sa.thread.练习.练习1.test
m1--NO------------------0次
开始打印数字:1
开始打印数字:2
m2--NO-----------------------------0次
开始打印字母:A
m2--NO-----------------------------1次
m1--NO------------------1次
开始打印数字:3
开始打印数字:4
m2--NO-----------------------------2次
开始打印字母:B
m2--NO-----------------------------3次
m1--NO------------------2次
开始打印数字:5
开始打印数字:6
m2--NO-----------------------------4次
开始打印字母:C
m2--NO-----------------------------5次
m1--NO------------------3次
开始打印数字:7
开始打印数字:8
m2--NO-----------------------------6次
开始打印字母:D
m2--NO-----------------------------7次
m1--NO------------------4次
开始打印数字:9
开始打印数字:10
m2--NO-----------------------------8次
开始打印字母:E
m2--NO-----------------------------9次
m1--NO------------------5次
开始打印数字:11
开始打印数字:12
m2--NO-----------------------------10次
开始打印字母:F
m2--NO-----------------------------11次
m1--NO------------------6次
开始打印数字:13
开始打印数字:14
m2--NO-----------------------------12次
开始打印字母:G
m2--NO-----------------------------13次
m1--NO------------------7次
开始打印数字:15
开始打印数字:16
m2--NO-----------------------------14次
开始打印字母:H
m2--NO-----------------------------15次
m1--NO------------------8次
开始打印数字:17
开始打印数字:18
m2--NO-----------------------------16次
开始打印字母:I
m2--NO-----------------------------17次
m1--NO------------------9次
开始打印数字:19
开始打印数字:20
m2--NO-----------------------------18次
开始打印字母:J
m2--NO-----------------------------19次
m1--NO------------------10次
开始打印数字:21
开始打印数字:22
m2--NO-----------------------------20次
开始打印字母:K
m2--NO-----------------------------21次
m1--NO------------------11次
开始打印数字:23
开始打印数字:24
m2--NO-----------------------------22次
开始打印字母:L
m2--NO-----------------------------23次
m1--NO------------------12次
开始打印数字:25
开始打印数字:26
m2--NO-----------------------------24次
开始打印字母:M
m2--NO-----------------------------25次
m1--NO------------------13次
开始打印数字:27
开始打印数字:28
m2--NO-----------------------------26次
开始打印字母:N
m2--NO-----------------------------27次
m1--NO------------------14次
开始打印数字:29
开始打印数字:30
m2--NO-----------------------------28次
开始打印字母:O
m2--NO-----------------------------29次
m1--NO------------------15次
开始打印数字:31
开始打印数字:32
m2--NO-----------------------------30次
开始打印字母:P
m2--NO-----------------------------31次
m1--NO------------------16次
开始打印数字:33
开始打印数字:34
m2--NO-----------------------------32次
开始打印字母:Q
m2--NO-----------------------------33次
m1--NO------------------17次
开始打印数字:35
开始打印数字:36
m2--NO-----------------------------34次
开始打印字母:R
m2--NO-----------------------------35次
m1--NO------------------18次
开始打印数字:37
开始打印数字:38
m2--NO-----------------------------36次
开始打印字母:S
m2--NO-----------------------------37次
m1--NO------------------19次
开始打印数字:39
开始打印数字:40
m2--NO-----------------------------38次
开始打印字母:T
m2--NO-----------------------------39次
m1--NO------------------20次
开始打印数字:41
开始打印数字:42
m2--NO-----------------------------40次
开始打印字母:U
m2--NO-----------------------------41次
m1--NO------------------21次
开始打印数字:43
开始打印数字:44
m2--NO-----------------------------42次
开始打印字母:V
m2--NO-----------------------------43次
m1--NO------------------22次
开始打印数字:45
开始打印数字:46
m2--NO-----------------------------44次
开始打印字母:W
m2--NO-----------------------------45次
m1--NO------------------23次
开始打印数字:47
开始打印数字:48
m2--NO-----------------------------46次
开始打印字母:X
m2--NO-----------------------------47次
m1--NO------------------24次
开始打印数字:49
开始打印数字:50
m2--NO-----------------------------48次
开始打印字母:Y
m2--NO-----------------------------49次
m1--NO------------------25次
开始打印数字:51
开始打印数字:52
m2--NO-----------------------------50次
开始打印字母:ZProcess finished with exit code 0