`
BabyDuncan
  • 浏览: 574621 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计4个线程,两个对i加1,两个对j减1

阅读更多
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

分享到:
评论

相关推荐

    线程练习题2

    实现两个线程,一个线程打印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时,先把...

    java笔试汇总 经典中的经典!绝对超值!还等什么 下载评分吧!!!

    例如: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 ...

    J2EE面试题

    2:设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 3:用冒泡法对10个数排序(由小到大)例如: 54,12,-6,6,22,-7,9,0,999,79 4:有一个登录页面,上面有用户名(name),...

    VB课程设计俄罗斯方块

    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 -...

    〖程序设计基础〗练习题2及答案

    4. 一个类的定义包括定义类头和定义类体两个部分。( ) 5.一个程序里可以有多个父类,也可以有多个主类。( ) 6. 一个子类可以重新定义从父类那里继承来的同名方法,而且允许它们有不同的返回值。( ) 7.抽象方法只能...

    c# 加密和解密相关代码

    对比两个二进制的值,从右向左按位对比,如果两个二进制数的相应位都为1 或两个二 进制数的相应位都为0,则返回0;如果两个二进制数的相应位中一个为1 一个为0,则返回1,最后得到的结 果为二进制值11000,该值转换...

    程序设计基础答案

    〖程序设计基础〗练习题1 一、选择题(每题1分,共30分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.以下的选项中能正确表示Java语言中的一...

    java 面试题 总结

    28、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j; public static ...

    java开源包4

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    超级有影响力霸气的Java面试题大全文档

    抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承...

    Java面试宝典(传说中的葵花宝典).doc

    补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。 备注:后面一部分回答虽然不是在正面回答题目,但是,为了展现自己的学识和表现自己对问题理解的透彻深入,可以回答一些相关的知识,...

    java开源包1

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    net学习笔记及其他代码应用

    28.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号 答:Select ID FROM table1 Where ...

    二十三种设计模式【PDF版】

    1.设计模式更抽象,J2EE 是具体的产品代码,我们可以接触到,而设计模式在对每个应用时才会产生具体代码。 2.设计模式是比 J2EE 等框架软件更小的体系结构,J2EE 中许多具体程序都是应用设计模式来完成的,当你深入...

    达内 coreJava 习题答案

    规律:一个数等于前两个数之和 //计算斐波那契数列(Fibonacci)的第n个值 public class Fibonacci{ public static void main(String args[]){ int n = Integer.parseInt(args[0]); int n1 = 1;//第一个数 int n2...

    java综合试题(面试题)

    5.一个类的定义包括定义类头和定义类体两个部分。( ) 7.类的私有属性和私有方法可以被其子类访问。( ) 13.子类不能继承父类的构造函数。( ) 14.重载的方法可以通过它们的返回值类型的不同来区分。( ) 16.在 Applet ...

    c++ 面试题 总结

    这两个好象是一样的,此时*p可以修改,而p不能修改。 (4)const char * const p 这种是地址及指向对象都不能修改。 -------------------------------------------------------------------------- 6.下面是C语言中...

    java开源包11

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包2

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

Global site tag (gtag.js) - Google Analytics