`

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

阅读更多
public class Maintest {
private int j=0;

public static void main (String [] args){
Maintest mt = new Maintest();
add add = mt.new add();
dec dec = mt.new dec();
for (int i=0;i<2;i++){
Thread t = new Thread(add);
t.start();
t = new Thread(dec);
t.start();
}
}

private synchronized void add(){
j++;
System.out.println(Thread.currentThread().getName() +" _add is " +j);
}

private synchronized void dec(){
j--;
System.out.println(Thread.currentThread().getName() +" _dec is " +j);
}

class add implements Runnable{
public void run() {
for(int i = 0;i<10;i++){
add();
}
}
}

class dec implements Runnable{
public void run() {
for(int i = 0;i<10;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

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

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

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

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

    两个串口多线程通信

    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. **线程...

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

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

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

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

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

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

    操作系统——实验四 windows中线程的创建和同步控制

    这两个线程共享一个数组A,写线程对数组分别进行10次写操作,每次写操作对A的每个元素赋一个相同的值;读线程对数组分别进行10次读操作,每次读操作输出A中所有元素的值。写出相应代码,并分析运行结果。修改代码,使...

Global site tag (gtag.js) - Google Analytics