我对线程非常陌生。因此,如果这是一个非常基本的问题,请原谅我的无知。基本上,我正在尝试将员工列表写入Excel工作簿。因此,在下面的类中,方法只调用一次。而 write 方法从 10 个不同的线程中多次调用。startUp
@Component
class MyEmployeeWriter{
priavte int rowNum; // To start with, the rowNum is 0 here
public void startUp(Employees employee)
{
// some logic ...
this.rowNum++; //now rowNum is 1
}
public void write(Employees employees)
{
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.createRow(this.rowCount); //here for all the 10 threads the, rowNum is 1
// Some more logic here...
this.rowCount++;
}
}
我面临的问题是,所有10个线程都是1。递增的线程不可用于下一个线程。this.rowCountrowCount
试用版 1:
我使用了行数的关键字。这也行不通。volatile
试用版 2:
我尝试将行Num更改为,并在其上添加了一个同步块。这也行不通。Integer(Wrapper class)
synchronized(this.rowNum) // I changed rowNum from int to Integer.
{
// Some logic here
}
任何帮助将不胜感激。谢谢。
偶然的你
相关分类