`

4线程两加两减

阅读更多
package com.thread;
/**
 * 设计4个线程,其中两个线程对j加1,另外两个对j减1
 * 
 *
 */
public class ThreadTest2 {
	
	//外部内成员变量j,共享于两个内部类
	private int j; 
	
	public static void main(String[] args) {
		/**
		 * 外部类使用内部类实例时,需先实例化外部类
		 * 因为内部类可以调用外部类的人员成员,
		 * 当没有外部类实例的时候也就没有这些成员的内存空间,
		 * 内部类在实例化的时候,调用外部类的成员就会出错,
		 * 所以需要使用外部类的实例 + 点 + new 的方式实例化一个新的内部类
		 */
		ThreadTest2 test2=new ThreadTest2();
		Inc inc=test2.new Inc();
		Dec dec=test2.new Dec();
		for (int i = 0; i < 2; i++) {
			new Thread(inc).start();
			new Thread(dec).start();
		}
	}
	
	
	/**
	 * 加1方法
	 */
	public synchronized void inc() {
		j++;
		System.out.println(Thread.currentThread().getName()+":inc()="+j);
	}
	
	/**
	 * 减1方法
	 */
	public synchronized void dec() {
		j--;
		System.out.println(Thread.currentThread().getName()+":dec()="+j);
	}
	
	
	
//加1的内部类
	class Inc implements Runnable{
		public void run() {
			for (int i = 0; i < 10; i++) {
				inc();
			}
		}
	}
	
//减1的内部类
	class Dec implements Runnable{
		public void run() {
			for (int i = 0; i < 10; i++) {
				dec();
			}
		}
	}
}

 

分享到:
评论

相关推荐

    java用线程的两种实现方式设计四个线程两次对J加1两次对J减1

    java用线程的两种实现方式设计四个线程两次对J加1两次对J减1

    j的多线程加减.zip

    设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

    java-多线程下载器(支持断点续传、线程加减)包含源码和可运行jar包 第二版

    4、任务下载过程中可以点击“线程+”或“线程-”即时增减线程; 5、选择任务,可以在任务信息栏中查看任务下载的信息; 6、对于正在下载和暂停的任务,可以再下载分块图示中查看文件的分块下载情况; (灰色为未...

    java-多线程下载器(支持断点续传、线程加减)包含源码和可运行jar包

    3、线程数由用户在新建任务时设定(若大于线程数20则默认为20); 4、下载过程中可以暂停,点击开始可以继续下载; 5、点击菜单栏“任务——退出程序”正常退出,可以保存当前未下载完成的任务,等待下次继续下载...

    linux多线程编程

    三、对互斥量加减锁 40 四、互斥锁属性 45 五、应用互斥量需要注意的几点 48 第五章 条件变量 48 一、什么是条件变量 48 二、条件变量函数 48 三、条件变量属性 54 四、条件变量与互斥锁、信号量的区别 55 第六章 ...

    linux系统下多线程编程文档资料

    三、对互斥量加减锁 40 四、互斥锁属性 45 五、应用互斥量需要注意的几点 48 第五章 条件变量 48 一、什么是条件变量 48 二、条件变量函数 48 三、条件变量属性 54 四、条件变量与互斥锁、信号量的区别 55 第六章 ...

    用多线程做自动机程序

    DDX_Control(pDX, IDC_LED_OUT4, m_Led_Out[4]); DDX_Control(pDX, IDC_LED_OUT3, m_Led_Out[3]); DDX_Control(pDX, IDC_LED_OUT2, m_Led_Out[2]); DDX_Control(pDX, IDC_LED_OUT1, m_Led_Out[1]); DDX_Control...

    UDP+阻塞队列+多线程

    (1)至少支持加、减、乘、除四种基本运算。 (2)服务器端能够分别记录已经成功处理的不同运算类型请求的个数。 (2)客户端与服务器端之间基于 UDP 协议进行通信。 (3)应用层协议自行设计。例如请求数据包、响应...

    OS 操作系统 进程 线程 文件 设备 C# 多用户 登陆 课程设计 报告 算法 FCFS

    4 设备部分 设备管理主要包括设备的分配和回收。 设备的模拟 模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。 数据结构 因为模拟系统比较小,因此只要设备表设计合理既可。 设备分配 ...

    Java的24点游戏

    所谓24点游戏就是4个数字通过加减乘除的四则运算来达到24点的游戏,考玩家的数学计算能力。 此Java程序利用了JavaSE里面的框架,层层嵌套。有计时器线程。有内部类实现。 最主要的帮助按钮,采用了分治递归的算法...

    一个进程池的服务器程序

    当父进程发现请求数 &gt;= 子进程数时,父进程创建新的子进程,并把子进程数加1(当然子进程数有个预先上限);当父进程发现子进程数大于请求数加1时,父进程杀死多余的子进程。 总的来说,思想是让子进程accept并处理...

Global site tag (gtag.js) - Google Analytics