如何保证两个语句顺序执行而不被另一个线程中断

时间:2014-06-03 10:26:42

标签: java multithreading

在一个简单的Java程序中,我有两个正在运行的线程,addSomesubtractSome

这两个线程都在同一个box对象上工作。基本上,他们同时在这个方框中添加和减去项目。

为了理解线程等,我试图输出框的内容和当前正在工作的线程。

System.out.println(Thread.currentThread().getName());
System.out.println("Items: " + contents);

问题是,我意识到,因为if类中的Box语句的结构(你只能在盒子中有项目时才能获取项目等)第一个输出语句正在打印然后切换到正在添加新内容的另一个线程,然后返回到打印旧内容的第一个线程。

基本上,我想确保这两个语句由同一个线程同时执行,并且两者之间不应发生任何事情。

2 个答案:

答案 0 :(得分:3)

使用同步方法同步块的同步概念。

答案 1 :(得分:1)

使用线程同步的概念

它使用获取锁的概念,这将使您实现目标