public class fourThread {
int i = 10;
int j = 50;
public static void main(String[] args) {
// TODO Auto-generated method stub
fourThread ft = new fourThread();
plus addi = ft.new plus();
minus minusj = ft.new minus();
Thread t = new Thread(addi);
t.start();
Thread t1 = new Thread(addi);
t1.start();
Thread tj = new Thread(minusj);
tj.start();
Thread tj1 = new Thread(minusj);
tj1.start();
}
public synchronized void add() {
i++;
System.out.println(Thread.currentThread().getName()
+ "对i + 1 : " + i);
}
public synchronized void minus() {
j--;
System.out.println(Thread.currentThread().getName()
+ "对j - 1 : " + j);
}
class plus implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
for (int q = 0; q < 10; q++) {
add();
}
}
}
class minus implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
for (int p = 0; p < 10; p++) {
minus();
}
}
}
}
运行结果:
Thread-0对i + 1 : 11
Thread-3对j - 1 : 49
Thread-3对j - 1 : 48
Thread-3对j - 1 : 47
Thread-3对j - 1 : 46
Thread-3对j - 1 : 45
Thread-3对j - 1 : 44
Thread-3对j - 1 : 43
Thread-3对j - 1 : 42
Thread-3对j - 1 : 41
Thread-3对j - 1 : 40
Thread-0对i + 1 : 12
Thread-0对i + 1 : 13
Thread-0对i + 1 : 14
Thread-0对i + 1 : 15
Thread-0对i + 1 : 16
Thread-0对i + 1 : 17
Thread-0对i + 1 : 18
Thread-0对i + 1 : 19
Thread-0对i + 1 : 20
Thread-2对j - 1 : 39
Thread-2对j - 1 : 38
Thread-2对j - 1 : 37
Thread-2对j - 1 : 36
Thread-2对j - 1 : 35
Thread-2对j - 1 : 34
Thread-2对j - 1 : 33
Thread-2对j - 1 : 32
Thread-2对j - 1 : 31
Thread-2对j - 1 : 30
Thread-1对i + 1 : 21
Thread-1对i + 1 : 22
Thread-1对i + 1 : 23
Thread-1对i + 1 : 24
Thread-1对i + 1 : 25
Thread-1对i + 1 : 26
Thread-1对i + 1 : 27
Thread-1对i + 1 : 28
Thread-1对i + 1 : 29
Thread-1对i + 1 : 30
分享到:
相关推荐
实现两个线程,一个线程打印1-52,另一个线程打印A-Z,要求输出的结果如下: 1 2 A 3 4 B 5 6 C 7 8 D 9 10 11 12 ... 52 E F G H I J K ... X Y Z 即:当数字小于9时,数字和字母交替打印; 当数字大于等于9时,先把...
例如:1、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 public class ThreadTest1{ private int j; public static void main(String args[]){ ThreadTest1 tt=new ThreadTest...
8设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j; public static void ...
2:设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 3:用冒泡法对10个数排序(由小到大)例如: 54,12,-6,6,22,-7,9,0,999,79 4:有一个登录页面,上面有用户名(name),...
For j = i + 4 To i Step -1 t = 1 cmdfang(j).Visible = False cmdfang(2 * i + 9 - j).Visible = False For k = 1 To 4000 DoEvents Next t = 0 Next linenum = linenum + 1 For j = i - 1 To 0 Step -...
4. 一个类的定义包括定义类头和定义类体两个部分。( ) 5.一个程序里可以有多个父类,也可以有多个主类。( ) 6. 一个子类可以重新定义从父类那里继承来的同名方法,而且允许它们有不同的返回值。( ) 7.抽象方法只能...
对比两个二进制的值,从右向左按位对比,如果两个二进制数的相应位都为1 或两个二 进制数的相应位都为0,则返回0;如果两个二进制数的相应位中一个为1 一个为0,则返回1,最后得到的结 果为二进制值11000,该值转换...
〖程序设计基础〗练习题1 一、选择题(每题1分,共30分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.以下的选项中能正确表示Java语言中的一...
28、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j; public static ...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承...
补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。 备注:后面一部分回答虽然不是在正面回答题目,但是,为了展现自己的学识和表现自己对问题理解的透彻深入,可以回答一些相关的知识,...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
28.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号 答:Select ID FROM table1 Where ...
1.设计模式更抽象,J2EE 是具体的产品代码,我们可以接触到,而设计模式在对每个应用时才会产生具体代码。 2.设计模式是比 J2EE 等框架软件更小的体系结构,J2EE 中许多具体程序都是应用设计模式来完成的,当你深入...
规律:一个数等于前两个数之和 //计算斐波那契数列(Fibonacci)的第n个值 public class Fibonacci{ public static void main(String args[]){ int n = Integer.parseInt(args[0]); int n1 = 1;//第一个数 int n2...
5.一个类的定义包括定义类头和定义类体两个部分。( ) 7.类的私有属性和私有方法可以被其子类访问。( ) 13.子类不能继承父类的构造函数。( ) 14.重载的方法可以通过它们的返回值类型的不同来区分。( ) 16.在 Applet ...
这两个好象是一样的,此时*p可以修改,而p不能修改。 (4)const char * const p 这种是地址及指向对象都不能修改。 -------------------------------------------------------------------------- 6.下面是C语言中...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...