首页 > 其他分享 >4线程,2个对i加,2个对i减

4线程,2个对i加,2个对i减

时间:2023-02-19 23:36:17浏览次数:33  
标签:ShareData void class 线程 new public


package test1;


/**
* 设计4个线程,其中2个线程,每次对i加1,另外两个线程,每次对i减一
*
* @author Administrator
*
*/
public class Thread2 {
public static void main(String[] args) {
ShareData d = new ShareData();
for (int i = 0; i < 2; i++) {
new Thread(new Runnable1(d)).start();
new Thread(new Runnable2(d)).start();
}
}
}

/**
* 加
* @author Administrator
*
*/
class Runnable1 implements Runnable {
private ShareData d;
public Runnable1 (ShareData d) {
this.d = d;
}

@Override
public void run() {
d.increment();
}
}

/**
* 减
* @author Administrator
*
*/
class Runnable2 implements Runnable {
private ShareData d;
public Runnable2 (ShareData d) {
this.d = d;
}

@Override
public void run() {
d.decrement();
}
}


class ShareData {

private int i = 0;

public synchronized void increment () {
i++;
System.out.println("加后i为:" + i);
}

public synchronized void decrement () {
i--;
System.out.println("减后i为:" + i);
}
}

 

 

 

标签:ShareData,void,class,线程,new,public
From: https://blog.51cto.com/u_21817/6066950

相关文章

  • 简单多线程卖票代码
     publicclassThread2{publicstaticvoidmain(String[]args){ShareDatad=newShareData();//两个窗口卖票newThread(d).start();newThread(d).st......
  • 子线程先执行10次,主线程执行5次,子线程再执行10次,主线程再执行5次,如此反复3次
    packagecom.mhm.test1;/***子线程跑10次,主线程跑5次,然后子线程再跑10次,主线程再跑5次,往返3次*@authorMahone**/publicclassTest2{publicstaticvoidmain(S......
  • Windows黑客编程之远线程注入
    描述通过在进程中创建线程的方式,将dll注入到目标进程准备知识远线程注入的原理在目标进程空间内申请一段内存,写入dll的路径,然后利用ZwCreateThreadEx函数在目标进程......
  • 程序、进程和线程
    1、程序程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念2、进程进程是执行程序的一次执行过程,他是一个动态的概念,是系统资源分配的单位3、线程......
  • 用Lock和Condition,实现主线程执行5次,子线程再执行10次,孙线程执行15次,如此反复5次
    packagetest1;importjava.util.concurrent.locks.Condition;importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;/***用Lock和C......
  • Exchanger多线程交换数据
    Exchanger用于两个线程之间(也可以多个线程)交换数据,交换器将自动匹配两个线程,将其数据互相传递.publicclassTest{publicstaticvoidmain(String[]args){......
  • 性能测试-性能场景设计-线程组参数介绍
    1、性能测试需求需求1:活动页面,要你做性能测试,看是否能满足1000个人同时访问。需求2:商定,对接的接口,要满足50tps。---这样的场景怎么设计需求3:  秒杀活动,我要看,秒......
  • 多线程计数 AtomicInteger
    大家在工作中肯定遇到过计数统计需求,单线程的情况下count直接定义int型就行,可是在多线程并发下会产生多个线程同时count++的情况,那么这种情况就需要用到AtomicInteger来保......
  • 线程18
    条件变量时构建在另一个锁上的同步原语,当需要线程关注特定的状态变化或事件发生时将使用这个锁。典型的用法是生产者与消费者问题,其中一个线程生产的数据提供给另外一个线程......
  • 多线程lock 为什么要lock,lock了什么?
    一.为什么要lock,lock了什么?当我们使用线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待。但当不同的线程都需要访问某个资源的时候,就需要同步......