`
chenyuxiaoxiao
  • 浏览: 71286 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java 设计4个线程 两个线程+1 两个线程-1

    博客分类:
  • java
阅读更多
package com.cg.javabasic;

public class JavaThreadTest2{

	/**
	 * @param args
	 */
	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 static void main(String[] args) {
		JavaThreadTest2 t = new JavaThreadTest2();
		Inc inc = t.new Inc();
		Dec dec = t.new Dec();
		for(int i =0;i<2;i++){
			Thread tt = new Thread(inc);
			tt.start();
			tt = new Thread(dec);
			tt.start();
		}
	}

	class Inc implements Runnable{
		public void run(){
			for(int i=0;i<=10;i++){
				inc();
			}
		}
	}
	
	class Dec implements Runnable{
		public void run(){
			for(int i= 0 ;i<=10;i++){
				dec();
			}
		}
	}
}

分享到:
评论

相关推荐

    JAVA线程高级-线程按序交替执行

    - `Exchanger`则允许两个线程交换数据,每次只有一个线程可以完成交换,从而实现交替执行。 4. **线程间的通信**: - `wait()`, `notify()`, `notifyAll()`是Object类的方法,用于线程间的通信。一个线程调用`...

    设计4个线程,其中两个对j增加,两个对j减少

    本示例中,我们创建了4个线程,其中两个线程负责递增变量`j`,另外两个线程负责递减`j`。这个设计主要展示了线程同步和竞争条件的概念。 首先,我们需要理解`Thread`类在Java中的作用。`Thread`是Java的内置类,...

    java程序 两个线程实现学生成绩的读写

    为了启动这两个线程,我们会在主程序中创建它们的实例,然后调用`start()`方法。线程的执行顺序取决于JVM的调度策略,因此可能读线程先执行,也可能写线程先执行。为了避免混乱,可能需要设定一些同步规则,比如使用...

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

    在上面的代码中,我们创建了四个线程,两个是 T1 类型,两个是 T2 类型。我们使用 Thread 构造函数来创建线程,并将相应的 Runnable 对象或 Thread 对象传递给它。然后,我们使用 start 方法来启动线程。 线程的...

    Java实现的两个线程同时运行案例

    Java多线程编程实现两个线程同时运行案例 Java多线程编程是Java编程中的一种重要技术,用于实现多任务并发执行,提高程序的执行效率和响应速度。在本文中,我们将介绍如何使用Java实现两个线程同时运行的案例,涉及...

    多线程编程(java)

    多线程编程是指在一个程序中并发执行多个指令流,每个指令流称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和...

    JAVA-JavaThreadProgramming-Sams.zip_JAVA 设计_java 多线程_java 线程_多线程

    Java线程编程是Java开发中的重要组成部分,尤其在构建高性能、高并发的应用程序时不可或缺。本资料"JAVA-JavaThreadProgramming-Sams.zip"提供了一套详细的教程,旨在深入讲解Java中的多线程设计和实现。 Java多...

    多线程 打印1-99,100-199

    根据实验需求,我们需要创建两个子线程,分别打印从 1 到 99 和从 100 到 199 的数字,并且这两个线程需要交替打印数字。 **3.1 创建打印线程** 首先,我们创建两个类 `Test1` 和 `Test2` 来代表两个子线程,它们...

    java 两个线程相互顺序输出

    标题“java 两个线程相互顺序输出”涉及的问题是如何在多线程环境下控制线程的执行顺序,使得两个线程可以按照特定的顺序交替打印输出。这通常涉及到线程同步和通信的概念。下面将详细解释这些知识点。 1. **线程...

    多线程精品资源--Java NIO+多线程实现聊天室.zip

    在Java编程中,多线程和非阻塞I/O(NIO)是两个核心概念,它们在构建高性能、高并发的应用程序中起着至关重要的作用。在这个“多线程精品资源--Java NIO+多线程实现聊天室”的压缩包中,我们可以推测它包含了一套...

    java用线程两种方式

    在这个main方法中,程序通过两种方式创建了两个线程:一个打印1到1000之间的所有奇数,另一个打印所有偶数。通过使用while循环,程序会持续运行直到两个线程都完成了它们的任务。 总结来说,Java通过两种方式提供了...

    JAVA-多线程 所有文件

    4. **线程状态**:Java线程有五种状态:新建、就绪、运行、阻塞和终止。了解这些状态有助于理解线程的生命周期。 5. **同步机制**:Java提供了多种同步机制防止数据竞争,如`synchronized`关键字、`wait()`, `...

    Java的多线程-线程间的通信.doc

    - 这两个方法在早期的Java版本中使用,但现在已被弃用,因为它们可能导致死锁。`suspend()`会让线程进入停滞状态,但不会释放锁,而`resume()`只能唤醒与之对应的`suspend()`调用的线程。这种设计容易导致其他线程...

    Java实现消费者与生产者两个线程问题

    用Java实现消费者与生产者两个线程进行调度

    java多线程设计模式_java_设计模式_多线程_多线程课题_

    死锁是多线程编程中的常见问题,两个或多个线程互相等待对方释放资源,导致无法继续执行。Java的jstack工具可以帮助检测死锁,而在编程时应避免循环等待,合理设计锁的获取顺序,以减少死锁的风险。 以上就是Java多...

    4JAVA编程高级-多线程编程

    死锁是多线程编程中常见的一个问题,它发生在两个或更多的线程永久阻塞,每个线程都在等待另一个线程释放资源的情况。解决死锁的方法包括但不限于: - 使用锁顺序:始终以相同的顺序获取锁。 - 使用超时:尝试获取锁...

    启动两个线程,一个线程打印1~52,另一个线程打印A~Z

    启动两个线程,一个线程打印1~52,另一个线程打印A~Z

    java 多线程编程实战指南(核心 + 设计模式 完整版)

    - **线程局部变量**:`ThreadLocal`用于存储每个线程的私有数据,避免数据冲突。 - **异常处理**:确保线程中的异常不会无声无息地消失,以免影响其他线程。 7. **性能调优** - **线程优先级**:了解线程优先级...

    在Java中创建线程有两种方法

    多线程程序至少需要两个线程:主线程和至少一个由用户创建的线程。主线程通常负责初始化和协调其他线程的工作。 总的来说,选择继承`Thread`还是实现`Runnable`取决于你的需求。如果你需要对线程类进行扩展或者线程...

    彻底明白Java的多线程-线程间的通信.doc

    因此,尽管两个线程都在运行,但它们都在同一个CPU核心上交替执行,导致看似只有一个线程在工作。为了实现真正的并发,我们需要使用更复杂的同步机制,如线程同步或线程间通信。 接着,我们来看如何在Java中实现多...

Global site tag (gtag.js) - Google Analytics