小编use*_*908的帖子

Java等待通知与共享整数对象

我试图使用跨多个线程的共享整数对象按顺序打印从1到10的数字.当使用共享对象作为AtomicInteger时,程序正常工作,但是当使用普通的Integer对象时,程序会抛出异常,我不知道为什么会发生这种情况.

用AtomicInteger编程

import java.util.concurrent.atomic.AtomicInteger;  

public class ThreadingProblem {

  public static void main(String[] args) {  
    AtomicInteger sharedInt = new AtomicInteger(0);  
    Thread t1 = new Thread(new ThreadingPrintingTask(sharedInt), "PrinterThread");  
    Thread t2 = new Thread(new ThreadingIncrementingTask(sharedInt), "IncrementerThread");  
    t1.start();  
    t2.start();  
  }  
}  

class ThreadingPrintingTask implements Runnable {    

  private AtomicInteger sharedObject;  

  public ThreadingPrintingTask(AtomicInteger sharedObject) {  
    this.sharedObject = sharedObject;  
  }  

  @Override  
  public void run() {  
    try {  
      synchronized (sharedObject) {  
        while (true) {  
          sharedObject.wait();  
          System.out.println("Shared object value is: " + sharedObject);  
          sharedObject.notify();  
        }  
      }  
    }  
    catch (InterruptedException …
Run Code Online (Sandbox Code Playgroud)

java multithreading atomic

2
推荐指数
1
解决办法
65
查看次数

标签 统计

atomic ×1

java ×1

multithreading ×1