`

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

    博客分类:
  • Java
 
阅读更多
public class ThreadTest1{   
	private int j;    
	public static void main(String args[]){ 
		ThreadTest1 tt=new ThreadTest1(); 
		Inc inc=tt.new Inc(); 
		Dec dec=tt.new Dec(); 
		for(int i=0;i<2;i++){  
		  Thread t=new Thread(inc); 
		  t.start();  
		  t=new Thread(dec); 
		  t.start(); 
		} 
	}    
	private synchronized void inc(){ 
		j++;  
		System.out.println(Thread.currentThread().getName()+"-inc:"+j);   
	}    
	private synchronized void dec(){ 
		j--;  
		System.out.println(Thread.currentThread().getName()+"-dec:"+j);   
	}    
	class Inc implements Runnable{ 
		public void run(){  
			for(int i=0;i<100;i++){ 
				inc(); 
			} 
		}   
	}    
	class Dec implements Runnable{ 
		public void run(){  
			for(int i=0;i<100;i++){ 
				dec(); 
			}  
		}   
	} 
}

 

分享到:
评论

相关推荐

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

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

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

    Java 语言提供了多种方式来实现多线程编程,今天我们将讨论其中的两种实现方式,并使用四个线程来演示对变量 J 的加一和减一操作。 实现方式一:通过继承 Thread 类 在 Java 中,我们可以通过继承 Thread 类来创建...

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

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

    C# 多线程互斥 两个线程交替工作

    对于两个线程交替工作,一个常见的应用场景是控制两个线程按照一定的顺序执行,比如线程A执行一次,然后线程B执行一次,如此循环。以下是一种可能的实现方法: 1. 使用`ManualResetEvent`或`AutoResetEvent`对象...

    编写程序,使用两个线程,一个队列,其中一个线程从键盘读取数据,放入到队列中,直到读取的数据是字符串quit则结束

    1. 编写程序,使用两个线程,一个队列, 其中一个线程从键盘读取数据,放入到队列中,直到读取的数据是字符串quit则结束,线程的任务就是循环读取数据直到特定的字符串quit。另外一个线程,不断的从队列中读取数据...

    两个串口多线程通信

    1. **初始化线程**:创建两个线程,每个线程负责一个串口的读写。可以使用各种编程语言提供的线程库,例如Java的`Thread`类,Python的`threading`模块,或者C++的`std::thread`。 2. **串口配置**:在每个线程启动...

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

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

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

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

    实现一个数据单元,包括学号和姓名两部分。编写两个线程,一个线程往数据单元中写,另一个线程往出读。要求每写一次就往出读一次。

    本实验的任务是设计并实现一个数据单元,该单元包含学号和姓名两个字段,并且使用两个线程,一个用于写入数据,另一个用于读取数据。这种设计模式被称为“生产者-消费者”问题,是多线程编程中的经典案例。 首先,...

    在Windows XP下,建立一个包含两个线程,它们分别显示。

    4. **同步机制**:由于两个线程可能会同时操作相同的资源(如UI元素),我们需要使用同步机制来避免竞态条件。Windows API提供了多种同步对象,如事件(Event)、互斥量(Mutex)或临界区(CriticalSection)。在...

    linux中一个程序的两个线程的同步(c语言实现)

    Linux 中两个线程的同步(C 语言实现) 在 Linux 操作系统中,多线程编程是非常常见的,但是当多个线程共享同一个资源时,需要确保线程安全,以免出现数据不一致或其他错误。信号灯(Semaphore)是解决这种问题的一...

    java用线程两种方式

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

    两个线程交替执行

    在上述代码中,我们可以看到两个线程 a 和 b,它们之间通过一个锁对象 LOCK 进行同步。线程 a 负责打印数字 1、2、3,而线程 b 负责打印数字 4、5、6。通过使用 synchronized 关键字,我们可以确保在某个时刻只有一...

    多线程之间的线程通信

    1. **信号量(Semaphore)**:用于控制对共享资源的访问,当资源可用时,信号量值会减一,当资源不足时,线程会被阻塞,直到信号量值增加到允许访问为止。 2. **锁(Lock)**:包括互斥锁(Mutex)和读写锁(RW-Lock)。...

    javaSocket的Tcp通信方式两个线程,一个线程接收数据一个线程发送数据

    总的来说,Java Socket的TCP通信采用两个线程分别处理接收和发送数据,可以提高系统的并发性能,减少阻塞,提高响应速度,同时通过合理的同步机制确保数据的准确传递。这是一个在并发编程中常见的优化策略,对于理解...

    java 两个线程相互顺序输出

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

    多线程设计一个火车售票模拟程序

    该类中有两个成员变量:total 和 count,分别表示剩余的火车票数和已经售出的火车票数。在 run 方法中,我们使用 while 循环来模拟售票过程。在每次循环中,我们都会检查是否还有剩余的火车票,如果有,则将其售出,...

    多线程实现多控制两个案例

    首先,我们来看第一个案例:实现两个线程分别控制两个运动。在计算机编程中,线程可以被视为程序的执行流,每个线程都有自己的堆栈和局部变量,但共享同一块内存空间。在这个案例中,我们可能会创建两个线程,每个...

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

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

    C#多线程互斥实例 多线程获取同一变量

    3. **竞态条件**:当两个或多个线程同时访问并修改共享资源时,如果没有适当的同步措施,可能导致数据的不一致性,这就是竞态条件。 4. **互斥**:互斥是一种确保任何时候只有一个线程能访问共享资源的技术。在C#中...

Global site tag (gtag.js) - Google Analytics