JAVA线程操作常见面试题 包括不使用内部类对多个线程加减1

class ManyThreads2 {
private int j = 0;
public synchronized void inc() {
j++;
System.out.println(Thread.currentThread().getName() + "inc" + j); }
public synchronized void dec() {
j--;
System.out.println(Thread.currentThread().getName() + "dec" + j);
}}
public class MyTest extends Thread {
private ManyThreads2 many = new ManyThreads2();
public void run()
{ many.inc();
many.dec();
many.inc();
many.dec();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MyTest myTest = new MyTest();
myTest.start(); }
}

 

 

分别10次打印 输出A B C 


public class MyTest extends Thread {
char cha;
private int id;
int num=0;
static int count=0;
public MyTest(int id, char cha)
{ this.id=id;
this.cha=cha;
}

public synchronized void run()
{ while(num<10){
if(count%3==id){
System.out.println(id);
count++;
num++;
}
} }

public static void main(String[] args) {
// TODO Auto-generated method stub
new MyTest(1,‘A‘).start();
new MyTest(2,‘B‘).start();
new MyTest(3,‘C‘).start(); }
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。