在一个简单的Java程序中,我有两个正在运行的线程,addSome
和subtractSome
。
这两个线程都在同一个box
对象上工作。基本上,他们同时在这个方框中添加和减去项目。
为了理解线程等,我试图输出框的内容和当前正在工作的线程。
System.out.println(Thread.currentThread().getName());
System.out.println("Items: " + contents);
问题是,我意识到,因为if
类中的Box
语句的结构(你只能在盒子中有项目时才能获取项目等)第一个输出语句正在打印然后切换到正在添加新内容的另一个线程,然后返回到打印旧内容的第一个线程。
基本上,我想确保这两个语句由同一个线程同时执行,并且两者之间不应发生任何事情。
答案 0 :(得分:3)
使用同步方法或同步块的同步概念。
答案 1 :(得分:1)
使用线程同步的概念
它使用获取锁的概念,这将使您实现目标