Java线程间通信

Java线程间通信,java,multithreading,concurrency,java.util.concurrent,Java,Multithreading,Concurrency,Java.util.concurrent,我想在一个新线程中创建一个计数器,该线程有一个在线程运行时获取计数器值的方法。如何以简单的方式完成此操作?请检查以下内容: public class ThreadsExample implements Runnable { static AtomicInteger counter = new AtomicInteger(1); // a global counter public ThreadsExample() { } static void inc

我想在一个新线程中创建一个计数器,该线程有一个在线程运行时获取计数器值的方法。如何以简单的方式完成此操作?

请检查以下内容:

public class ThreadsExample implements Runnable {
     static AtomicInteger counter = new AtomicInteger(1); // a global counter

     public ThreadsExample() {
     }

     static void incrementCounter() {
          System.out.println(Thread.currentThread().getName() + ": " + counter.getAndIncrement());
     }

     @Override
     public void run() {
          while(counter.get() < 1000){
               incrementCounter();
          }
     }

     public static void main(String[] args) {
          ThreadsExample te = new ThreadsExample();
          Thread thread1 = new Thread(te);
          Thread thread2 = new Thread(te);

          thread1.start();
          thread2.start();          
     }
}
公共类ThreadsExample实现可运行{
静态AtomicInteger计数器=新的AtomicInteger(1);//全局计数器
公共线程示例(){
}
静态无效增量计数器(){
System.out.println(Thread.currentThread().getName()+“:“+counter.getAndIncrement());
}
@凌驾
公开募捐{
while(counter.get()<1000){
递增计数器();
}
}
公共静态void main(字符串[]args){
ThreadsExample te=新的ThreadsExample();
螺纹1=新螺纹(te);
螺纹2=新螺纹(te);
thread1.start();
thread2.start();
}
}

检查此项。示例本身:如果它只是一个计数器,则可以使用
AtomicInteger
类型。